指向2D阵列的指针C,C

前端之家收集整理的这篇文章主要介绍了指向2D阵列的指针C,C前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习指针:
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;

猜你在找的C&C++相关文章