问题描述:
int j=2;
j=(j++)+(++j);
为什么j=7啊?
但是如果改成m=(j++)+(++j);
得到m=6呢?
main()
{int m,j=2;
j=(j++)+(++j);
printf("%d",j);}
我运行了,还是7啊?
问题解答:
一、
int j = 2;
j = ( j ++ ) + ( ++ j );
为什么j = 7啊?
答:变量j=6,鄙人已经运行过了,对于过程实在不好说明
其中,自增运算符“++”是一个自右向左的运算符,
运算中 j = ( j ++ ) + ( ++ j ) 转化为 j = 2 + 4;
进行 加法 运算后才经行 j ++,此时 j = 3,
而后经行( ++ j ),此后j = 4;
二、
但是如果改成m = (j ++ ) + ( ++ j );
得到m = 6呢?
答:m = 6 ,鄙人也运行过了。
QQ 631496417
这种问题就不要拿上台面了。c++标准没有规定。不同编译器可能出现不同的结果。
6