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;总结
以上是内存溢出为你收集整理的指向2D阵列的指针C,C全部内容,希望文章能够帮你解决指向2D阵列的指针C,C所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)