假设:
6 char arr[] = "ABC";
7
8 char *ptr = &arr;
9 char *ptr2 = &ptr;
使用ptr2
,如何访问c
的元素?
我原本以为以下方法会奏效,但......不会。
**ptr2[1]
答案 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)[]
。