C语言基础|指针与多维数组-创新互联

具象到抽象,从具体出发

10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有宁津免费网站建设让你可以放心的选择与我们合作。
int array[2][4];
int (*point)[4];
point = array[1];

这里的array就是一个二维数组,而point是一个指向二维数组的指针,四代表了该数组的第二维长度(即第二维有四个元素)

怎么理解一个多维数组?

可以想象成一个大box,一个大box里面有很多中box,中box里面又有很多小box;array这个是一个大box,里面装了两个中box(array[0]和array[1]),每个中box里面四个小box(如array[1]里面有array[2][0-3})

落实到概念:array是一个地址,这个地址上有两个数组,每个数组里面四个元素;单独看这每一个数组,它的名字就是array[0]和array[1],和前面对应,所以他们也是地址,所有的地址都是这个box里面第一个box的位置。只有一直拆盒子拆到了最后一层不能再拆为止,这些才是真正的元素和值,否则一直是地址地址地址

怎么理解一个指针指向了一个多维数组?

指针是一个变量,有本身自己的地址(所有的地址理解成为一个盒子,一个可以放东西的地方),作为一个变量,指针并没有什么特殊之处,可以做一些运算改变值(毕竟一个盒子还是能装东西滴)而这里的代码就让point这个盒子里面装了array[1]这个盒子的地址(!!!关键理解,这里是地址!!!盒子的地址!!!)这个盒子的位置被point知道了,但是point并不知道它葫芦里卖的是什么药,所以我们要把他拆开

point==&array[1]; //注意没有这种语法,只是为了理解噢,array[1]本身就是地址了
*point==&array[1][0];
**point==array[1][0];

point得到array[1]的地址,*point得到array[1]这个盒子里装的东西,是array[1][0]的地址,最后再用一个*把这个地址的值取出来,就得到了array[1][0]的真正的值

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:C语言基础|指针与多维数组-创新互联
地址分享:http://myzitong.com/article/dgcisp.html