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

指向2D阵列的指针C,C,第1张

概述我正在学习指针: int x[10]; int *p = &x 这会使指针类型为第一个元素的int.所以,如果我有2D数组,我需要使用双指针:第一个指针指向数组的第二个维度.这意味着 : int x[3][4] = {{1,2,3,4},{5,6,7,8},{9,9,9,9}}; 当我想指出它时,我必须像这样声明第二维的大小,对吧? int *p[4] = x; 或者通过输入另一种方式:int 我正在学习指针:
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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1255462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存