Dlaczego jest argvzadeklarowany jako „wskaźnik do wskaźnika do pierwszego indeksu tablicy”, a nie po prostu „wskaźnik do pierwszego indeksu tablicy” ( char* argv)?
Dlaczego tutaj wymagane jest pojęcie „wskaźnik do wskaźnika”?
char* argv[]stawia miejsce w niewłaściwym miejscu. Powiedz char *argv[], a teraz jest jasne, że oznacza to „wyrażenie *argv[n]jest zmienną typu char”. Nie daj się wciągnąć w próbę ustalenia, co to jest wskaźnik, a co wskaźnik do wskaźnika i tak dalej. Deklaracja mówi ci, jakie operacje możesz wykonać na tej rzeczy.
char * argv[]z podobnym konstruktem C ++ std::string argv[]i może być łatwiejsze do przeanalizowania. ... Po prostu nie zaczynaj tak pisać !
char &func(int);który nie sprawia, że &func(5)ma typ char.

char* argv[]lubchar**. To wskaźnik do wskaźnika do znaku; konkretnie zewnętrzny wskaźnik wskazuje na pierwszy wskaźnik w tablicy, a wewnętrzne wskaźniki wskazują na pierwsze znaki łańcuchów zakończonych znakiem nul. Nie ma tu żadnych wskaźników.