加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:24:43 所属栏目:百科 来源:网络整理
导读:我正在学习指针: int x[10]; int *p = x 这会使指针类型为第一个元素的int.所以,如果我有2D数组,我需要使用双指针:第一个指针指向数组的第二个维度.这意味着 : int x[3][4] = {{1,2,3,4},{5,6,7,8},{9,9,9}}; 当我想指出它时,我必须像这样声明第二维的大
我正在学习指针:
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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读