2. 关系操作符2.1初识关系操作符C语⾔⽤于⽐较的表达式称为“关系表达式”relationalexpression⾥⾯使⽤的运算符就称 为“关系运算符”relationaloperator主要有下⾯6个。关系表达式通常返回 0 或 1 ,表⽰真假。C语⾔中,0 表⽰假,所有⾮零值表⽰真。⽐如, 2 1 则返回1 , 1 2 则返回 0.关系表达式常⽤于 if 或 while 结构。if (x % 3 0 ) { printf(%d是三的倍数,x); }2.2 和 注意相等运算符 与赋值运算符是两个意义完全不同的运算符不要混淆。有时候可能会不⼩⼼写出下⾯的代码它可以运⾏但很容易出现意料之外的结果。if ( x 3 )上面原本意思是x 3,即当x等于3时,执行if管理的语句,结果不小心写成了x 3,这个式子表示将3这个值赋值给x,它的返回值是3,随意if的判断总为真.为了防⽌出现这种错误有的程序员喜欢将变量写在等号的右边。if ( 3 x )这样的话,如果您将错写成了,因为常量不能被赋值,所以编译器会报错,以提醒您.2.3 多个关系操作符不宜连用i j k这在数学中非常常见,我们想要表示 j 的值大于 i 并且小于 k .但在C语言中表达的意思并不是这样连续使⽤两个⼩于运算符。这是合法表达式不会报错但是通常达不到想要的结果 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算所以实际执⾏的是下⾯的表达式:( i j ) k上面的式子中,( i j )根据对错返回 0 或 1,而最终是 0 或 1 与变量k做比较,再得到一个0 或 1.如果确实是想判断 j 的值是否在 i 和 k 之间,因该是用下面的写法:i j i k这里来一个示例: 我们输入一个人的年龄,如果年龄在18~36岁之间,我们输出青年.int main() { int age 0; scanf(%d, age); if(18 age 36) { printf(⻘年\n); } return 0; }当我输入2作为年龄,这显然不在规定区间内,照理不应该打印任何东西.结果依然输出青年,如下:这是因为我们先拿18和age中存放的2做⽐较表达式182为假,所以这里结果是0,再拿0 和 36⽐较036为真所以打印了青年,所以即使当age是2的时候也能打印 问题这个代码应该怎么写呢if ( age 18 age 36 )只需将if里面的语句改成如上样式即可,而在这里使用的逻辑操作符会在本章后面详细解释.以上就是关于操作符我们需要掌握的剩下的只要按照字⾯意思理解使⽤就⾏没有特别注意的。