C语言中在改变输出变量的值,造成printf输出结果不同。自加运算

2024-12-14 12:42:04
推荐回答(3个)
回答1:

这个东西很编译器环境有很大的关系。其实没必要太过深究其中的原理。
printf语句里如果有表达式的话,是从右向左开始运算的,输出的时候是从左向右输出。
printf("%d,%d\n",k++,k);先执行k,再执行k++。输出的时候先输出k++再输出k的结果
printf("%d,%d\n",k,k++);先执行k++再执行k,输出的时候先输出k再输出k++的结果

回答2:

这种代码都是在实际编程中应当避免发生的。即使你今天搞清楚了,如果换了一个C语言编译器,或许答案就不一样了(同样的代码在不同的编译器下的解释有可能是不同的,这也就是不推荐使用这种代码的理由)。

回答3:

这没有唯一定义,有的编译器下输出都是8,8。