C语言中能不能用连等来进行判断?if(m==n==s[0]==s[1]==s[2]==s[3]==s[4]==t[0]==t[1]==t[2]==t[3]==t[4])这句话正确吗?
没有。a = b = c 在 C 中可以写成 a = b; b = c
C语言中不允许出现这样的连等式!但先定义然后再再连等式可以的
能。a=b=14的意思是将14赋给a和b,最后a和b都等于14,并不是判断a和b是否与14都相等。
这是由于“短路”效应造成的,等效于a == b || b == 1,显然与你的目的不符,所以说,要判断a和b是否同时为1,不能写成if (a == b == 1),而只能写作if((a == b) && (b == 1)),或if((a == 1) && (b == 1)),或if((1 == a) && (1 == b))等。
可以的,C语言中赋值表达式的返回值会向左传递。也就是说a=2这个表达式的值为2。这时如果if(2==(a=2))那么if的值为真。也就是说a=b=c=3是合法的。但是a=b+2=9是不行的,因为9的值不能赋给2,它是个常量。赋值运算符右侧的值由表达式生成,而表达式则由文本、常数、变量、属性、数组...
也就是等式从右往左计算),所以a=b=c 等同于 a=(b=c),故a=4,b=4;第二题:优先级 : 关系运算符>"?:">赋值运算符,故a=b>=c?d:b 等价雨 a= ( (b>=c)?d:b );所以 a=2,b=2;关于运算符的优先级可以参考 http://baike.baidu.com/view/262524.html ...
因为这是 C 语言。您可以自己编写一个语言,或者使用 #define来支持连等写法。
先看3<i 如果i比3大 就变成 1<1 返回false 如果i比3小 就变成 0<1 返回true