指向二维数组的指针——讨厌的行指针和列指针反思

                           指向二维数组的指针——讨厌的行指针和列指针反思

文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍。

学指针的时候行指针和列指针就是难点,还记得老师当时就说这几乎是C语言最难理解的地方了(当然只是基础语法,我们还没讨论复杂功能实现吐舌头),下面介绍一下行指针列指针方面的基础基础基础易混易混易混的地方,毕竟基础决定层建筑!适合小白,以及对指针一直有困惑的人,希望可以解决你的困惑,欢迎指正。

定义行指针的方法:

T array[4][5];
T (*ptr)[5];//5为该二维数组列的个数

ptr=array;//若位列指针则这样定义:  T *ptr=array[0];


此时ptr+1=array+1,及移动一行。
*(ptr+Row)+Col 为列地址,且为该数组第Row行,第Col列的地址
*(*(ptr+Row)+Col) 为具体的值

下面对行地址和列地址的表示方法进行总结如下:
iArr 为二维数组名
行地址:
iArr   iArr+i &iArr[i]    &*(iArr+i)
列地址
*iArr  *(iArr+i)   iArr[i]



通过以上总结相信大家可以发现列地址和行地址之间存在着以下关系即行地址进行一次*运算即为列地址,同样的列地址进行一次&预算即为行地址

加油吧,程序员!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值