C语言多维数组指针的技巧

       最近在学习C下多维数组指针的时候,发现个小的技巧。比如定义一个二维数组,int a[3][4],如果想引用第一个元素,直接**a,就可以了。当然如果定义三维的数组,引用第一个元素,直接***a。多维的照此推理就可以了。
       如果在程序中使用指向数组元素的指针变量,对其赋初值时,要使用元素地址,不能使用行的地址。如果要对引用二维数组元素a[r][l],可以使用*(a[r]+l);如果是引用三维数组a[h][r][l],可以使用*(a[h][r]+l);参考程序:

/*多维数组指针参考程序*/
#include <stdio.h>

void main(void)
{
 int *p,a[2][3] = {1,2,3,4,5,6},b[2][2][3] = {1,2,3,4,5,6,7,8,9,10,11,12};
 p = a[0] + 0;/*指向数组元素的指针变量,对其赋初值时,要使用元素地址*/
 printf("a[0][0] = %d/n",**a);/*引用第一个元素,直接**a*/
 printf("a[1][2] = %d/n",*(a[1] + 2));/*引用二维数组元素a[r][l],可以使用*(a[r]+l)*/
 printf("a[1][1] = %d/n",*(p+(1*3)+1));
 p = b[0][0] + 0;
 printf("b[0][0][0] = %d/n",***b);
 printf("b[1][0][1] = %d/n",*(b[1][0]+1));/*引用三维数组a[h][r][l],可以使用*(a[h][r]+l)*/
 printf("b[1][1][1] = %d/n",*(p+1*6+1*3+1));
}


输出结果如下:

a[0][0] = 1
a[1][2] = 6
a[1][1] = 5
b[0][0][0] = 1
b[1][0][1] = 8
b[1][1][1] = 11

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值