黑马程序员技术交流社区

标题: 求解答。 [打印本页]

作者: الغيوم_ا    时间: 2014-7-13 23:32
标题: 求解答。
int main()
{int a=2;
Printf(″%d,%d,%d\n″,a,++a,a--);
为什么程序运行后是:2,2,2
而不是2,3,3?



作者: 温天恩    时间: 2014-7-14 00:00
这个应该同我刚才回答的问题,不同的编译器运行结果是不一致的,我的运行就是3,3,2。你可以通过goole百度来查看自己的编译器特性,我想应该有你要的答案。
作者: 灰色头像    时间: 2014-7-14 07:34
有意思我的编译器的答案是2,2,3还真是奇怪了
作者: 完美世界    时间: 2014-7-14 09:10
准确的答案是:你这个输出语句在C标准里是不被允许的,也就是错误的。2个关于a的运算顺序根据编译器的不同是不固定的。函数传参的时候避免一个变量做多次运算传入多次。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2