原标题:C语言答疑|有关&arr的小知识
宜
预习知识
复习整理
2017年
陆月叁日
忌
虚度光阴
过度游戏
考期倒计时——15天……
Hello万票 我们又见面啦
不知道大家最近小日子过的怎么样呢
又是端午又是六一 想想都很美滋滋呢~
有没有记得学习呢~
(内心:唉没办法学委的任务就是监督大家学习嘛……)
最近假期这么多
小编突然有种好久都没上c语言课的感觉诶……
不过话说回来 虽然c语言课不多
但大家课后的学习中遇到的问题可不少
热心的学霸们也在积极地为大家解答着问题~
今天这篇推送 我们就一起来看看由李邦政同学
为大家带来的关于&arr的知识点整理吧~
(此处有热烈的掌声~~~)
有关&arr
“
arr[m][n]为典型的二维数组。我们知道数组名称可视为为某类型的指针,但又不尽相同。具体机制如下。
设初始化为int zippo[m][n]。
”
如图,事实上,多维数组在内存中存储时采用线性存储的方式,也就是说以 行 为顺序依次排在一条直线上。以二维数组为例,数组名zippo本身可视为第一行的地址,故*zippo,即进行一次取值,变为【第一行】这一数组,也就是其首个元素的地址(类比可得)。因此**zippo才是第一个元素(zippo[0][0])的值。
所以,对 zippo 进行代数运算实际上是在指向不同行的数组,如zippo+2指向第三行,取值一次*(zippo+2)为第三行首元素指针。*(*(zippo+2)+1)为zippo[2][1]的值。
可以见得,我们可以宏观来看:n维数组的名字arr可以看作n“层”指针(我编的概念,为了理解),进行一次*或后接[t] 就减小一“层”指针。这样就能宏观把握某个混乱等式的具体类型。( arr[t]相当于*(arr+t) )。
但是&zippo就要注意(此处抽象为int zippo[m][n],莫管上图),&zippo一定是“指向m行n列的二维int数组的指针”,它的类型是int (*p)[m][n],若想把&zippo赋值给p,上述定义中数字绝不能改。建议上手试试。
有问题的程序:
完美运行:
有关&arr的难点解答就到这里啦~
小宝贝们如果还有什么疑问可以随时留言告诉后台哟~万能的后台君会及时帮你解答哦~
或者如果你还有对于淑芬糕袋大雾或者其他科目的各种疑问,都欢迎留言告诉我们~好的问题与解答也会做成推送与大家一起分享哦~
那么我们下次再见啦~~~
文案:李邦政
王学习
排版:王学习
你想知道的1609
我们在这里
都说给你听
责任编辑: