A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© الغيوم_ا 中级黑马   /  2014-7-13 23:32  /  970 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int main()
{int a=2;
Printf(″%d,%d,%d\n″,a,++a,a--);
为什么程序运行后是:2,2,2
而不是2,3,3?


评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

3 个回复

倒序浏览
这个应该同我刚才回答的问题,不同的编译器运行结果是不一致的,我的运行就是3,3,2。你可以通过goole百度来查看自己的编译器特性,我想应该有你要的答案。

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
有意思我的编译器的答案是2,2,3还真是奇怪了
回复 使用道具 举报
准确的答案是:你这个输出语句在C标准里是不被允许的,也就是错误的。2个关于a的运算顺序根据编译器的不同是不固定的。函数传参的时候避免一个变量做多次运算传入多次。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马