11月30日总结

11月30日总结,第1张

11月30日总结

今天学习了一下通过指针引用多维数组的知识,(虽然之前学长讲过了,但感觉理解的还是不彻底)。里面的概念也是比较多。首先当我们定义二维数组a[4][3]的时候,a就是数组名了,也是二维数组的首地址(这我们之前就学过了的),可以对a进行加减运算,例如a+1就表示的是序号为1的行的起始地址。这里可以对a+1进行取值*(a+1),表示的是该行第一个元素的地址。可能有人会好奇,为什么a+1和*(a+1)的值是相等的呢?没错,这也就是二维数组地址的难点。其实两者还是有区别的,具体区别是二者指向的对象不同,前者指向的对象是一维数组,后者指向的是一维数组的数据类型。具体来说就是一个指向行,一个指向列。由此我们可以定义指向多维数组的指针变量,例如int (*p)[4],代表p指向含四个整型元素的一维数组。初始化p=a(p指向二维数组的第0行)这样我们通过指针就能引用数组元素了,对于第i行第j和元素可以这样表示*(*(p+i)+j)。需要注意的是,当我们对行指针进行取值的时候,他就变成了列指针,在未对行指针取值时我们对p进行加减时是对行的 *** 作,取值一次后转换成列指针,此时的加减便变成了对列进行的 *** 作。(仔细体会其过程),于是我们便可以快速定位到某个值,并对其进行 *** 作。

有关指针的知识还有很多,我这里也是讲的只是其中的很小的一部分,具体还是要靠自己去多看,多想。

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

原文地址: http://outofmemory.cn/zaji/5635766.html

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

发表评论

登录后才能评论

评论列表(0条)

保存