以前,认为,a++,相当于,a, a++;后来,在做题的时候,发现一个问题,就是:
int main(void){
int m=5;
if(m++>5);
cout<<m<<endl;
}
如果,按照我之前的认为,翻译为:
int main(void){
int m=5;
if(m>5) m++;
cout<<m<<endl;
}
执行结果是:
而实际的运算结果是:
也就是,不论判断成功与否,它都会去执行m++。
那么,m++的执行究竟是在什么时候呢?接下来,再来做个实验。
int main(void){
int m=6;
if(m++>5) {
m++;
cout<<"mIn="<<m<<endl;
}
cout<<"mOut="<<m<<endl;
}
结果:
如此,看来,它是先判断,然后立刻执行m++,再执行{}里面的代码,即使判断不成立,也要执行m++。