一个问题不懂,请大家帮我

geshuwei2006 2007-08-24 05:13:39
void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}

q在vc里编译,输出为什么是22阿?
应该是24才对阿
在tc下输出是24
为什么啊?
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lukeamon 2007-08-27
  • 打赏
  • 举报
回复
明显是编译器的问题,
makewater 2007-08-24
  • 打赏
  • 举报
回复
编译器的问题 典型的月经帖!
liufei1108 2007-08-24
  • 打赏
  • 举报
回复
各编译器不同,入栈顺序也会不同,最好是用常用的编译器!!
gfxiang 2007-08-24
  • 打赏
  • 举报
回复
搜搜前面相关的帖子,有很多讨论这种问题的帖子
把分散了吧,呵呵
gs0038 2007-08-24
  • 打赏
  • 举报
回复
mark
飞哥 2007-08-24
  • 打赏
  • 举报
回复
各编译器不同
入栈顺序有关
sunwei19820504 2007-08-24
  • 打赏
  • 举报
回复
和编译器有关,输出语句执行的是栈操作,不同的编译器入栈和出栈的方式不同。
建议实际编程的时候不要这么写。
ouyh12345 2007-08-24
  • 打赏
  • 举报
回复
只能接分....
最好用vc6、vc8、gcc、dev c++、tc等都编译一下,然后看结果
goodluckyxl 2007-08-24
  • 打赏
  • 举报
回复
这个运算入栈有先后顺序
确实存在各种编译器不一致的问题
建议对同一个变量的++ -- 不要在一个表达式中出现多次
容易出问题
bargio_susie 2007-08-24
  • 打赏
  • 举报
回复
月经帖又来了。。。
tncqsy 2007-08-24
  • 打赏
  • 举报
回复
这个和编译器有关
写的程序最好不要依赖编译器

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧