从单片机基础到程序框架(全集 2019pdf版).pdf - 第165页

第四十节:关系符的等于“==”和不等于“!=” 。 【40.1 关系符的等于“==”和不等于“!=” 。 】 C 语言的 “=” 并不 是等于号, 而是赋值的 意思, 这点 前面已讲过 。 为了 跟赋值区分开 来, C 语言 用 “= =” 来表示等于 号的关系符,用 “! =” 表示 不等于的关 系符,之所以用 “ !=” 表示不 等于的关 系,是因为 C 语言 中的“!”就是“ 取非” 的运算符, 有否定之意。 等于关系符 “==”…

100%1 / 836
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。
第四十节:关系符的等于“==”和不等于“!=”
【40.1 关系符的等于“==”和不等于“!=”
C 语言的“=”并不是等于号,而是赋值的意思,这点前面已讲过为了跟赋值区分开来,C 语言“==”
来表示等于号的关系符,用“!=”表示不等于的关系符,之所以用!=”表示不等于的关系,是因为 C 语言
中的“!”就是“取非”的运算符,有否定之意。
等于关系符“==”语句的常见格式如下:
if(常量或变量==常量或变量)
{
语句 1;
语句 2;
}
语句 3;
语句 4;
不等于关系符“!=”语句的常见格式如下:
if(常量或变量!=常量或变量)
{
语句 1;
语句 2;
}
语句 3;
语句 4;
上一节讲到,常量或变量在 if 语句中的真假判断,不等于 0 就是真,等 0 是假。而本节关系运
符的真假判断也很简单清晰,满足条件就是真,不满足条件就是假。例如
if(2==1) //2 肯定不等于 1所以不满足条件“等于的关系”因此为假,不会执行大括号内的语句。
{
语句 1;
语句 2;
}
相反,请继续看下面不等于号“!=”这个例子:
if(2!=1) //2 肯定不等于 1,所以满足条件“不等于的关系”,因此为真,会执行大括号内的语句。
{
语句 1;
语句 2;
}
【40.2 建议把常量放在“==”或“!=”关系符的左边】
“if(a==1)”和“if(1==a)”在实现的功能上是相同的。但是,在实际做项目的时候,还是建议大家采
用后面这种写法“if(1==a)”把常量放在左边,这样写有什么好处?好处是如果我们不小心把等于“==”
或者“!=”误写成赋值符号“=”时,C 编译器在编译时,它能及时发现错误并且报错告知我们因为常量在
左边是无法赋值的,编译器能及时发现错误。但是如果常量在右边而变量在左边,因为变量是允许赋值的,
所以有一些 C 语言编译器未必会报错,就会留下不易察觉的程序隐患。比如
if(a==5)
{
语句 1;
}
if(b!=2)
{
语句 2;
}
建议改成:
if(5==a)
{
语句 1;
}
if(2!=b)
{
语句 2;
}
【40.3 例程练习和分析。
现在编写一个实验程序一共有 8 给定的数,要统计其中数值“等于 85”的数有几个统计其中数
“不等于 75”的数有几个。
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
unsigned char x1=90; //给定的第 1 个数
unsigned char x2=65; //给定的第 2 个数
unsigned char x3=85; //给定的第 3 个数
unsigned char x4=79; //给定的第 4 个数
unsigned char x5=95; //给定的第 5 个数
unsigned char x6=65; //给定的第 6 个数
unsigned char x7=75; //给定的第 7 个数
unsigned char x8=85; //给定的第 8 个数