看流星社区

 找回密码
 注册账号
查看: 1917|回复: 0

数组元素的指针 vs 数组的指针

[复制链接]

该用户从未签到

发表于 2013-5-22 09:39:53 | 显示全部楼层 |阅读模式
int arr[100];

printf("&arr[0]=%d\n",&arr[0]);
printf("arr=%d\n",arr);
printf("&arr=%d\n",&arr);
  
printf("&arr[0]+1=%d\n",&arr[0]+1);
printf("arr+1=%d\n",arr+1);
printf("&arr+1=%d\n",&arr+1);

运行的结果

&arr[0]=1244656

arr=1244656

&arr=1244656

&arr[0]+1=1244660

arr+1=1244660

&arr+1=1245056

说明的问题是:

arr和&arr[0]是等效的,即数组名是数组第一个元素的指针

&arr和arr是的地址相同,但是却本质上不同。arr是数组第一个元素的指针。&arr是数组的指针。这可以从指针+1的地址偏移看出。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-15 12:45

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表