你写的应该是:
int i=2;
printf("%d,%d,%d\n",++i,i+=2,--i);吧,你把i写成n了
其实,我们是不建议这样写的.在调用函数是,实参数的求值顺序,C标准库并无同统一规定.
在大多数系统中,对函数参数的求值顺序是自右向左的,上面那句就会输出:4,3,1(也就是先算--i,结果为1, 再算i+=2,结果为3, 最后算++i结果为4.所以输出4,3,1)
在有些系统中,是从左到右求值的,也就是先算++i 再算 i+=2 最后算--i,所以输出结果为3,5,4
所以,建议你如果需要输出3,5,4的话可以这样写:
int i=2,a,b,c;
a=++i;
i+=2;
b=i;
c=--i;
printf("%d,%d,%d\n",a,b,c);