我正在学习指针:
int x[10]; int *p = &x
这会使指针类型为第一个元素的int.所以,如果我有2D数组,我需要使用双指针:第一个指针指向数组的第二个维度.这意味着 :
int x[3][4] = {{1,2,3,4},{5,6,7,8},{9,9,9}};
当我想指出它时,我必须像这样声明第二维的大小,对吧?
int *p[4] = x;
或者通过输入另一种方式:int ** p; ?
和int * p [4]是整数指针数组,取4 *(sizeof(int *)),对吧?
解决方法
this would make a pointer type (int) to first element ..
没有.
& x是数组x的地址,类型为int(*)[10],您不能将其分配给int *类型.两者都是不兼容的类型.
So,if I had 2D array,I need to use double pointer: first pointer would point to the second dimension of the array.
没有.
在表达式中,数组转换为指向其第一个元素的指针,除非当sizeof和unary&的操作数时.操作符.因此,在这种情况下,转换后x的类型将为int(*)[4].你需要一个指向4 int数组的指针而不是4指针数组
int (*p)[4] = x;