一个小C 问题,请高手指点!

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:58:51
int a=9,c=8;
求值 (--a!=c++)?--a:++c;

10
#include<stdio.h>
void main()
{int a=9,c=8;
printf("%d\n",(--a!=c++)?--a:++c);

}
(--a!=c++)先执行这个.
--a=8;而c++是先取c的值,然后在自加.此后c=9;
由于(--a!=c++)为假,所以值为++c,它是先自加,所以c=10..

首先要弄明白++或--在变量前后的区别,在前则先进行++或--再进行表达式计算,反之就先计算表达式再进行自加或自减。
所以这道题的答案是:
(--9!=8++)?--9:++8
(8!=8)?8:9
9