recherche

Maison  >  Questions et réponses  >  le corps du texte

c++ - problème avec les pointeurs en langage C

*argv[]
argv est l'adresse, *argv[] est la variable pointée par l'adresse.
Puisque argv est une adresse, pourquoi argv[1] peut-il être appelé ainsi

给我你的怀抱给我你的怀抱2709 Il y a quelques jours1008

répondre à tous(7)je répondrai

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-30 09:59:22

    argv[1] équivaut à *(argv+1)

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-30 09:59:22

    Vous devez poser des questions sur int main(int argc, char *argv[]) 吧。其实你想这么写也完全没有什么问题的 int main(int argc, char **argv).

    Si vous définissez un char *s = '2333',那这个 s 指的是什么?字符串的首地址吧。同理,*argv[1], que stocke-t-il ? La première adresse de la première chaîne. Vous pouvez simplement le comprendre de cette façon, et si vous souhaitez approfondir, vous pouvez lire le livre.

    char *s = "23333";
    char *z = "34444";
    char *argv[] = {s, z};
    
    int a = 0;
    int b = 1;
    int c[] = {a, b};

    C'est intéressant~ En fait, parfois, si on veut comprendre, il suffit de changer sa façon d'écrire.

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-30 09:59:22

    L'affiche originale veut dire

    int main(int argc, char *argv[])

    en *argv[], non ?

    char *argv[]是一个数组,数组的元素是char *,每一个char *都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1] est aussi une adresse, qui est la première adresse d'une chaîne.

    Les tableaux et les pointeurs ne peuvent être considérés comme identiques que lorsqu'ils sont utilisés comme paramètres de fonction, donc char *argv[]也可以写成char **argv ici, je ne sais pas si c'est plus facile à comprendre.

    répondre
    0
  • 怪我咯

    怪我咯2017-06-30 09:59:22

    Le type lors du passage des paramètres est *argv[], ce qui équivaut à **argv, qui est un pointeur vers un pointeur

    répondre
    0
  • 巴扎黑

    巴扎黑2017-06-30 09:59:22

    Voici*argv[]定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n])
    argv[1]是指针数组的第2个元素,仍是一个指针,*(argv+1) la valeur pointée par le deuxième élément du tableau de pointeurs, qui est une valeur. )

    La valeur de

    argv[1]是地址,具体怎么调用,要结合具体的上下文代码来分析。
    一般会把argv[1]放在另一个指针里int *p = (int*)argv[1];,然后下文*p取得*argv[1].

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-30 09:59:22

    Le nom du tableau est en fait une adresse, il n'y a donc rien de mal à l'utiliser de cette façon.

    répondre
    0
  • 为情所困

    为情所困2017-06-30 09:59:22

    En langage C, un tableau est à l'origine une adresse

    répondre
    0
  • Annulerrépondre