二维数组的指针学习

本文探讨了二维数组的指针概念,指出二维数组指针实际上指向首元素的地址。通过指针加n可以访问到第n+1个元素的地址。*(指针+n)+n则表示二维数组中第n+1个元素数组的第n+1个元素的地址。此外,解释了*(指针+n)等价于array[n],而array[n]等价于(array[n])[n],并指出array[n]+n即为(array[n])[n]的地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维数组的元素地址;
二维数组指针指向的是首元素的地址(也是首元素数组的首歌元素地址)
指针加n是二维数组第n+1个元素的地址
*(指针+n)+n是二维数组第n+1个元素(元素是一个数组)的第N+!个元素的地址
*(指针+n)等同于array[n]而array[n]
相当于(array[n])[n]
其中array[n]+n就是(array[n])[n]的地址

指向二维数组的指针

int (*p)[3];p是指向长度为3个Int值的数组指针(给个都有三个元素都是int类型的值)

 1 #include<stdio.h>
  4         int zippo[4][2]={{2,4},{6,8},{1,3},{5,7}};
  5         /*   {2,3}(zippo)
  6          *   {6,8}(zippo+1)
  7          *   {1,3}(zippo+2)
  7          *   {1,3}(zippo+2)
  8          *   {5,7}(zippo+3)
  9          *      2(zippo)  4(*(zippo)+1)
 10          *      6(zippo+1)  8(*(zippo+1)+1)
 11          *      1(zippo+2)  3(*(zippo+2)+1)
 12          *      5  7
 13          *
 14          *
 15          *
 16          *
 17          *
 18          * */
 19         printf("   zippo =%p,zippo+1=%p\n",zippo,zippo+1);
 20 
 21         printf("zippo[0]=%p,zippo[0]+1=%p\n",zippo[0],zippo[0]+1    );
 22         printf("  *zippo=%p,*zippo+1=%p\n",*zippo,*zippo+1);
 23         printf("zippo[0][0]=%d\n",zippo[0][0]);
 24         printf("  *zippo[0]=%d\n",*zippo[0]);
 25         printf("   **zippo=%d\n",**zippo);
 26         printf("   zippo[2][1]=%d\n",zippo[2][1]);
 27         printf("  *(*(zippo+2)+1)=%d\n",*(*(zippo+2)+1));
 28         printf("%d\n",**(zippo+2));
 29         return 0;
 30 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值