C语言中的关系操作符
C语言用于比较的表达式,称为关系表达式(relational expression),里面使用的运算符就称为"关系运算符"(relational operator),主要有下面6个。
>
大于运算符>=
大于等于运算符<
小于运算符<=
小于等于运算符==
相等运算符!=
不相等运算符
下面是一些例子。
a == b;
a != b;
a < b;
a > b;
a >= b;
a <= b;
关系表达式通常返回0
或1
,表示真假。
C语言中,0表示假,所有非零值表示真。比如,20 > 12
返回1
,20 > 20
返回0
。
关系表达式常用于if
和while
结构。
if (x == 3){
printf("x is 3.\n");
}
注意:相等运算符==
与赋值运算符=
是两个不一样的运算符,不要混淆。有时候不小心些出下面的代码,它可以运行,但很容易出现意料之外的结果。
if(x = 3)...
上面示例中, 原意是x == 3
,但是不小心写成x = 3
。这个式子表示对变量x
赋值3
,它返回值为3,所以if
判断总为真。
为了防止出现这种错误,有的程序员喜欢讲变量写在等号的右边。
if(3 == x)...
这样的话,如果把==
误写成=
,编译器就会报错。
/* 报错 */
if(3 = x)...
另一个需要避免的错误是:多个关系运算符不宜连用。
i < j < k
上面实例中,连续使用两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量j
的值在i
和k
之间。因为关系运算符是从左到右计算,所以实际执行的是下面的表达式。
(i < j) < k
上面式子中,i < j
返回0
或1
,所以最终是0
或1
与变量k
进行比较。如果想要判断变量j
的值是否在i
和k
之间,应该使用下面的写法。
i < j && j < k
比如:我们输入一个年龄,如果年龄在18岁~36岁之间,我们输出青年。
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(18<=age && age <= 36)
{
printf("青年\n");
}
return 0;
}
标签:关系,变量,C语言,运算符,报错,操作符,表达式
From: https://www.cnblogs.com/bjx2020/p/17583748.html