在printf()函数中修改变量值可能导致结果出错

来源:互联网 发布:淘宝代购比旗舰店便宜 编辑:程序博客网 时间:2024/05/17 07:02
#include <stdio.h>main() {int a,b,c;a = b = c = 0;printf("%d,%d,%d,%d\n", a, b, c, a++ && b++ || c++);}上面代码的输出结果为:1,0,1,0。原因:因为在print()函数中的求值顺序是从右往左,而输出顺序是从左往右。      因此表达式a++ && b++ || c++,等价于a++ &&(b++ || c++)这里b++被"短路"。建议:在printf()函数中尽量不要去改变量的值。


                                             
0 0