以前,认为,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++。
的一个问题&spm=1001.2101.3001.5002&articleId=47659733&d=1&t=3&u=b5d7f41e44574295a2cae97a87d0d8c5)
5486

被折叠的 条评论
为什么被折叠?



