【发布时间】:2011-11-26 21:34:35
【问题描述】:
为了更好地理解指针,我编写了以下代码:
int *a = 17;
printf("%d", a+3);
使用 gcc-4.3.4 在 c 下编译良好:http://ideone.com/abotd
但是用 c++ 编译失败:http://ideone.com/IdGHy
我想知道为什么。
另外,从第一个链接可以看出,输出是 29。我伪理解发生了什么:sizeof(int) 是 4,当我写 a+3 而不是将 3 加到 17 时,3*4正在添加中。
不过,如果有人能更雄辩地解释一下,我将不胜感激。
谢谢!
【问题讨论】: