注册 登录
编程论坛 C++教室

为什么是2,2,2不是2,2,3

icecream235 发布于 2011-08-12 15:38, 349 次点击
int p=2;
    printf("%d,%d,%d\n",p,p++,p);
这个程序为什么输出的是2,2,2
4 回复
#2
tisyang2011-08-12 15:47
因为 printf 的具体实现问题,
http://apps.hi.baidu.com/share/detail/30106654
很多东西都不是自己看到的那样。
#3
xinshou19912011-08-12 16:07
肯定是这样的啊!
第一个p=2//显而易见
第二个p=2//p++这是后置自加,先把p(2)拿出来(输出),所以p=2。再加1,其实这里p=3了,只不过没来得及输出而已。
第三个p=3//这里的p=2和第二个p=2是没有关系的,还是“int p=2”中的p.
#4
eraser80232011-08-12 17:31
这是自右向左运算的,这是很容易犯的错
#5
New_Born2011-08-13 15:16


顶3楼
1