一、若i=3;
执行表达式 (i++)+(i++)+(i++)后,i的值和表达式的值各为多少?
执行表达式 (++i)+ (++i)+(++i)后,i的值和表达式的值各为多少?
二、int a=5,b=3;
- -a==b++ ? a++: b++; /*执行完后a 为4,b为5,条件表达式的值为4*/
请各位高手详细分析上述两个例子 ,为什么? 谢谢
其实这个问题我觉得也说不好,在prime plus这本书里面说这种情况不同编译器有不同的结果,如果你用VC6.0的话,就是如图的答案,先自加或者后自加。如果其他的编译器,可能得到一、的结果是3+4+5=12,也就是说i逐一变化。
第二个条件表达式如果?前面成立,就执行a++,如果不成立,执行b++;不过他判断的时候先判断--a与b的大小关系,也就是说a变成了4,然后不管怎样,b自加。因为不成立,执行b++,继续自加,变成5,。
(++i)+ (++i)+(++i) 我用c算出来是16,为啥?