二维数组的有关指针

注:a[i][j]为二维数组,以下都是针对二维数组而言!

表示形式含义备注
a二维数组名,指向一维数组a[0],即0行首地址行首地址
a[0], *(a+0), *a, &a[0][0]0行0列元素地址元素地址
a+1, &a[1]1行首地址行首地址
a[1], *(a+1)1行0列元素的地址,即a[1][0]的地址元素地址
*(a[1]+2), *(*(a+1)+2), a[1][2]1行2列元素的值,即a[1][2]的值


注意:
1. a[1]和*(a+1)等价,在二维数组中只是地址的两种不同表现形式;
2. (1) a+1, &a[1] : 表示1行首地址,指向一维数组a[1],指向“行“;
(2) a[1],*(a+1),a[1]+0 : 表示1行0列元素的地址,指向列元素,指向“列”;
总结:(1)和(2)地址虽相同,但含义却完全不同;
3. 在指向行的指针前面加一个*,就转换为指向列的指针;如a和a+1是指向行的指针,*a和*(a+1)就成为了指向列的指针,分别指向0行0列的元素和1行0列的元素;
4. 在指向列的指针前面加上&,就成为了指向行的指针;如a[0]是指向0行0列的元素的指针,&a[0]与&*a等价,也就是与a等价,它指向二维数组的0行;


参考:《C语言程序设计》谭浩强版

如有错误,欢迎指正!谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值