C语言的题目,执行x=(y>z)?x+2:x-2,3,2后,x=?

日期:2016-02-25 10:15:00 人气:1

C语言的题目,执行x=(y>z)?x+2:x-2,3,2后,x=?

假设x=y=z=5的话,那么答案确实是3 系统首先执行y>z的判断,为假,0;故(y>z)?x+2:x-2将执行后半段x-2,即x=x-2,3,2。然后执行赋值操作,故有x=3,后面的逗号表达式意味着编译器将顺序执行后面的代码,并取最后一个运算式的值为表达式的最终值,故表达式的值为2,而x的值为3。 必须说明的是,这样的写法的可读性非常差,平时写代码不要这样写。逗号表达式最常用的地方是做变量声明或者函数声明的时候,如int a,b,c;或者int gcd(int a,int b);
    A+
热门评论