Pourquoi est-il argv
déclaré comme "un pointeur vers un pointeur vers le premier index du tableau", plutôt que d'être simplement "un pointeur vers le premier index du tableau" ( char* argv
)?
Pourquoi la notion de "pointeur à pointeur" est-elle requise ici?
char* argv[]
met l'espace au mauvais endroit. Disons char *argv[]
, et maintenant il est clair que cela signifie "l'expression *argv[n]
est une variable de type char
". Ne vous laissez pas prendre à essayer de déterminer ce qu'est un pointeur et ce qui est un pointeur vers un pointeur, etc. La déclaration vous indique quelles opérations vous pouvez effectuer sur cette chose.
char * argv[]
à la construction C ++ similaire std::string argv[]
, et il pourrait être plus facile d'analyser. ... Ne commencez pas à l' écrire de cette façon!
char &func(int);
qui ne fait pas &func(5)
avoir de type char
.
char* argv[]
ouchar**
. C'est un pointeur vers un pointeur sur un personnage; en particulier, le pointeur externe pointe vers le premier pointeur d'un tableau et les pointeurs internes pointent vers les premiers caractères des chaînes terminées par zéro. Il n'y a aucun indice impliqué ici.