C语言的简单问题,为什么是这个结果

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:37:11
#include<stdio.h>

main(){

int i=8;

printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

}

这个源代码在C++中运行怎么结果是
8
7
8
8
-8
-8

解释一下。一步一步来。
那么在turbo C中结果呢?

因为C语言printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
是从右向左运算的。

个人感觉C++中好像没有逗号表达式似的,所有后运算的自增自减都在printf之后再说,先运算的自增自减才在printf之前。

补充 记着一点 在没遇见“;”的时候 变量是不会后自减(或自加)的.还有就是这时遵循的是从右往左的原则的是~00~