关于i+++++i问题
如果int i=4;
int y=i+++++i;
则y等于多少??如何判断??
[解决办法]
不存在,这么写肯定报错了,编译都通不过
[解决办法]
结果是10
i++ 是 4
++i 是 6(i++在后一次用到i时,是5,然后++i是6)
y=4+6
[解决办法]
应该是这样子写的y = i++ + ++i;
[解决办法]
没空格不行吧:
int y = i++ + ++i;
i++ =4 随后i=5
++i = 6
4+6 = 10
[解决办法]
i++的值为4,i变成5
++i的值为6,i变成6
所以 y=4+6=10
[解决办法]
你这句话,应该没法编译吧?
要加上空格:int y=i++ + ++i;
加上空格后,其实就很容易理解了吧?
因为 ++ 运算符的特殊性,i++会在整个表达式运算完成后才执行,而++i会在表达式计算之前就执行,所以上面这句话相当于被拆解成:
++i;
int y = i+i;
i++;
所以y=5,i=6
[解决办法]
[解决办法]
int y = (i++) + (++i);
[解决办法]
如果int i=4;
int y=i+++++i;
计算步骤:
int y = (i++) + (++i);
int y = 4 + (++i); //这个时候i变成了5
int y = 4 + (++5)//++5 等于6
int y = 4+ 6=10
[解决办法]
不管是先i++,还是先++i,结果都是10。。
i++ + ++i中间的+必须有空格。。
[解决办法]
如果int i=4;
int y=i+++++i;
计算步骤:
int y = (i++) + (++i);
int y = (i++) + 5;
int y = 5 + 5=10;
[解决办法]
y = i++ + ++i
相当于
// 解析i++
t1 = i;
i = i +1;
// 解析++i
i = i + 1;
t2 = i;
// 等式结果
y = t1 + t2;