C:指向指针地址的指针,需要澄清

时间:2011-07-10 18:05:33

标签: c pointers

假设:

  6   char arr[] = "ABC";
  7 
  8   char *ptr   = &arr;
  9   char *ptr2  = &ptr;

使用ptr2,如何访问c的元素?

我原本以为以下方法会奏效,但......不会。

**ptr2[1]

2 个答案:

答案 0 :(得分:5)

您目前没有指向指针的指针。

您的代码应为:

char c[] = "ABC";

char  *ptr  = c;     // Note no &
char **ptr2 = &ptr;  // Note **, not *.  This is now a pointer-to-pointer

然后要访问,你想要这个:

(*ptr2)[1]

答案 1 :(得分:0)

ptr是指向数组的指针,因此其类型为char (*ptr)[]而不是char *

ptr2是指向指针的指针,因此其类型为:char (**ptr2)[]