三次自增的结果为多少?

#inculde
void main( )

int j=3,a;
a = (++j)+(++j)+(++j);
printf(“%d,”a);

输出等于多少啊?

a=18
其它编译器还会有其它结果,具体值与编译器有关

++j的优先级比整个表达式的优先级要高
所以会先执行三次++j
再执行a=j+j+j
但是不排除某些奇葩IDE把一半表达式先执行,留一半后执行
所以实际写代码的时候尽量避免这种坑爹的写法

VS的话是18 (直接看三次前置,那么j的值为6(也就是6+6+6)) 这个是比较快的方法 其它编译器可能会有其它结果