Search code examples
c++program-entry-pointarguments

C++ - char** argv vs. char* argv[]


What is the difference between char** argv and char* argv[]? in int main(int argc, char** argv) and int main(int argc, char* argv[])?

Are they the same? Especially that the first part does not have [].


Solution

  • They are entirely equivalent. char *argv[] must be read as array of pointers to char and an array argument is demoted to a pointer, so pointer to pointer to char, or char **.

    This is the same in C.