i++
正值招工季,我来给大家出一道题,关于i++的问题
[解决办法]
目测0,1.。
具体运行一下。。。
原来是0,2。
[解决办法]
求讲解。。。
循环里面等价于:
循环里面等价于:
int tmp = x++;//此句结束后tmp=0,x=1;
x = tmp;//x重新复制为0
x=0
x = x++ + ++x;
等价于
tmp =x++ + ++x;//2
x=tmp;
不过x++ + ++x我也不清楚为什么等于2,总感觉为1,这样的运算好像跟编译器有关,结果不一定
x=0
x = x++ + ++x;
运算总是从左往右一步一步:
上面等价于:
int x = 0;
int tmp1 = x++;//tmp1=0,x=1;
int tmp2 = ++x;//tmp2=2,x=2,++的优先级高
x = tmp1 + tmp2;//x=2