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进行加减时是对行的操作,取值一次后转换成列指针,此时的加减便变成了对列进行的操作。(仔细体会其过程),于是我们便可以快速定位到某个值,并对其进行操作。

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值