不要太纠结这个问题,知道 i++ 和++i的不同就行了,至于连着一串的++ ,一般没有人写这种代码的,写出来都是蛋疼等着挨骂的,除非是考试题上面
如果想知道为什么,直接反汇编看看就清楚了。 不同编译器的确可能不一样
我这边的调试器,看红色的那句,直接被优化成0x23了,也就是 35
int j=5,k;
k=(j)+(++j)+(j)+(++j)+(j);
cout<<"k:"<<k<<endl;
00401000 mov eax,dword ptr [__imp_std::endl (402038h)]
00401005 mov ecx,dword ptr [__imp_std::cout (402058h)]
0040100B push eax
0040100C push 23h
0040100E push ecx
0040100F call std::operator<<<std::char_traits<char> > (401160h)
00401014 add esp,4
00401017 mov ecx,eax
00401019 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (402044h)]
0040101F mov ecx,eax
00401021 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (402040h)]
return 0;