[求助]有关于自加自减的问题
main(){ int m=5;
if(m++>5) printf("%d\n",m);
else printf("%d\n",m--);
}
A: 7
B: 6
C: 5
D: 4
答案: B
m++=5所以执行 else printf("%d\n",m--);
m--也是5,怎么答案会是6呢?
m++=5,m=6,所以执行 else printf("%d\n",m--); m--=6,m=5;
既然已经进行(m++>5)这个判断了,m就等于6了,这有什么问题吗?
既然已经进行(m++>5)这个判断了,m就等于6了,这有什么问题吗?
我同意前辈说的已经进行(m++>5)这个判断,可是实际上m++>5是不成立的,所以程序不会执行printf("%d\n",m);,所以m就不会等于6
我是这么认为的
m++==5>5 不成立 后m值变为6
main()
{ int m=5;
if(m++>5) printf("%d\n",m);// 所以这句不执行
else printf("%d\n",m--);//输出m--的值 因为m的值变为6了 所以输出6
}
把下面的试下就应该知道了
main()
{ int m=5;
if(m>5) printf("%d\n",m);
else printf("%d\n",m--);
}
[此贴子已经被作者于2006-8-23 17:58:59编辑过]