首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

对数组名取指针的难题解决办法

2012-04-05 
对数组名取指针的难题int main(){ int a[5]{1,2,3,4,5}int *ptr(int *)(&a+1)printf(%d\n,*(ptr-1))

对数组名取指针的难题
int main()
{ int a[5]={1,2,3,4,5};
  int *ptr=(int *)(&a+1);
  printf("%d\n",*(ptr-1));
}


请教为什么结果是5?!!!
反复测试显示都是数组的最后一个数

[解决办法]
你有什么疑问 结果就是5啊
[解决办法]
我一开始就强调了&a得类型了。
[解决办法]
上面第一句说错了,指针有固定长度, 指针+1 ,的1 长度不固定。。。
[解决办法]

探讨
&a就是整个数组的地址,&a+1就是整个数组后面的那个地址,所以最后结果是5

热点排行