注册 登录
编程论坛 C语言论坛

求问result=(x>=y>=2)? 1:0;是什么意思啊?

永远没有永远 发布于 2019-10-05 16:34, 2468 次点击
#include<stdio.h>
main()
{
    int x,y,result;
    x=4;y=3;
    result=(x>=y>=2)? 1:0;
    printf("result=%d",result);
   
}
3 回复
#2
自学的数学2019-10-05 16:40
x>=y>=2在C语言中的意义与它在数学中的意义是不同的,在C语言中,它等价于:
(x>=y)>=2
即,先计算x>=y是否成立,并用计算的结果(0或者1)与后面的2进行大小比较的运算,因此,当x=4,y=3时,x>=y成立,所以(x>=y)的值是1(或者是其它的非0数字,对系统有依赖性),然后再计算1>=2
#3
bcbbcclbbc2019-10-05 21:53
一个假命题,不可能为真。结果是将0赋值给result。
首先要判断运算符的先后顺序及其结合性。这里的是先计算括号里的表达式,然后是问号表达式,最后再是赋值语言。
多个逻辑运算符(< 、> 、== 、<= 、>= 、!=)的连用和平时数学中的判断不太一样,
先计算含一个逻辑运算符的式子的结果(只有0与1,1代表真 0代表假),该结果再与下一个运算符相结合成一个式子并计算,循环到只有一个数。
#4
永远没有永远2019-10-15 18:16
懂了,谢谢!
1