C语言数组的升维与降维之说

C语言数组的升维与降维之说

当在二维数组的时候
*可以把二维数组名降级为一维数组名
&可以把一维数组名升级二维数组名
Type a[3][4]
一维数组名的成员是单个存储单元 那么步长就是sizeof(TYPE)
成员指针类型是TYPE*
二维数组名的成员是一维数组名 步长就是sizeof(一维数组名)
成员指针类型是Type[4] *

C语言数组的升维

比如:int array[3][4];
array是二维数组名 
a[0] a[1] a[2] a[3]分别是二维数组的成员也是一维数组名 
指针类型是int[4] 一维数组的成员指针类型是int *
*(array+1) array是二维数组名降为一维数组名array[1];
array指针类型是int[4] * ,现在*(array+1)的指针类型是int*
*(array+1)==array[1]; 那么就可以使用*(array+1)去对array[1]的成员访问了
eg: array[1][2]==*(*(array+1)+2)

C语言数组的降维

&array[1] array[1]是一维数组名 加上&以后升级为二维数组名 array+1;
&array[1]==array+1;
array[1]的指针类型是int* ,而&array[1]的指针类型是int[4]* 升级了

&是引用 *是解引用 一个是降级一个是升级 两者关系是互为逆向关系

一维数组名是一级指针 但是二维数组名不是二级指针 是数组指针
一个是int* 一个是int[4] *
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 谨记 每个人心中都有一片海,自己不扬帆,没人帮您启航,久了就是一片死海。人生,就是一场自己与自己的较量:让积极打败...
    长风留言阅读 12,443评论 6 10
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 9,572评论 2 13
  • 最近在看乡村爱情9 也许是年龄大了,越来越知道什么是生活,什么是实实在在了,放下了对韩剧美剧的追逐,改看乡村爱情,...
    十七少爷阅读 3,304评论 0 4
  • 1. 在密闭的空间里写作。颈部隐隐疼痛,感觉到它的钙化。僵硬,迟钝。 坏的习惯久了,会形成果实。疾病便是。 ...
    高海心阅读 1,895评论 1 3
  • 今天跟爸爸聊天,无意中说到我对我四叔的不待见。我爸说,八九十年代的时候村里要修路,那条路刚好在四叔家的房背后,四叔...
    彩云聚散阅读 1,486评论 0 0

友情链接更多精彩内容