一学就会的数组指针例子详解

一学就会的数组指针的例子过程:

#include<stdio.h>
int main()
{
int a[3][3]={
    {1,2,3},
    {4,5,6},
    {7,8,9}
};
int (*p)[3]=a; //数组指针
 
printf("a[1][2] is =%d\n",a[1][2]);    //输出6
printf("p5 is =%d\n",*(*p+5));         //输出6
printf("p is =%d\n",**p);              //打印1
 
printf("p[0] is =%d\n",*p[0]); //打印1
printf("p[1] is =%d\n",*p[1]); //打印4
printf("p[2] is =%d\n",*p[2]); //打印7
 
/********************************/
printf("ptr[0][1] is =%d\n",p[0][1]); //打印2
 
return 0;
 
}

这个例子中,首先定义了一个3行3列的二维数组,然后定义了一个数组指针p,并将其指向数组a。这样就可以通过操作指针p来获取a里的元素。

*(*p+5)为什么打印6,打印了和a[1][2]一样的结果。因为数组下标都是从0开始的,a[1][2]是数组第二行第三列的元素。

*(*p+5)呢,*p其实就是a[0][0]的地址,所以*p+5其实就是a[0][0]的地址+5,所以(*p+5)其实就是a[1][2]的地址。

下一篇 C语言结构体

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值