Alvin Hooradishhu.blog.chinaunix.net
Radish_Hu
全部博文(51)
2012年(17)
2011年(34)
zhanghua
shanggua
percy
haibarah
xunuj
小雅贝贝
格伯纳
wangqin0
84953801
zyd_cu
分类: C/C++
2011-09-06 19:59:45
在x86 系统下,输出的值为多少?
#include
intmain()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int)a+1);
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}
上一篇:堆和栈的区别
下一篇:gdb调试学习
林生20102011-09-08 12:07:45
sygspjlsj2011-09-07 09:18:18
输出结果为5,2000000,不明白输出。 我的理解:ptr1应该是数字2的地址,但不知道ptr1[-1]是什么意思 (int)a+1应该指a的首地址加上一字节(常理a+1应该指int(a)+4),具体指哪儿去,表示费解,请高手解答!
登录 注册