文章目录
1.运算符分类
2.算术运算符及表达式
3.关系运算符与关系表达式
4.c语言运算级优先级表
课后习题自测
1.运算符分类
语言提供了13种类型的运算符,如下所示.
(1)算术运算符(+ - * / %) .
(2)关系运算符(>< == >=<= l=) .
(3)逻辑运算符(l && ll) .
(4)位运算符(<< >> ~ I ^ &).
(5)赋值运算符(=及其扩展赋值运算符).
(6)条件运算符(?和:)
(7)逗号运算符(,)
(8)指针运算符(*和&)—讲指针时讲解
(9)求字节数运算符(sizeof) .
(10)强制类型转换运算符((类型)).
(11)分量运算符(. - >) .—讲结构体时讲解
(12)下标运算符([ ]) . ----讲数组时讲解
(13)其他(如函数调用运算符() ). —讲函数时讲解
2.算术运算符及表达式
算术运算符包含+、一、、/和%,当一个表达式中同时出现这5种运算符时,先进行乘()、除(/)、取余(%),取余也称取模,后进行加(+)、减(-),也就是乘、除、取余运算符的优先级高于加、减运算符.
只有的情况:
(1) %运算符只适用于整形数
#举例
10%3=3
6%4=1
(2) / 运算时,只有两边的操作数都是整型的情况下,才执行整除运算,其他情况下执行浮点型数除法。
算术表达式:
由算术运算符组成的式子称为算术表达式,表达式一定有一个值。
3.关系运算符与关系表达式
关系运算符
关系运算符>、<、= =、>=、<=、!=依次为大于、小于、是否等于、大于等于、小于等于和不等于。
关系表达式
由关系运算符组成的表达式称为关系表达式。关系表达式的值只有真和假,对应的值为1和0。由于C语言中没有布尔类型,所以在C语言中0值代表假,非0值即为真。
例如,关系表达式3>4为假,因此整体值为0,而关系表达式5>2为真,因此整体值为1。关系运算符的优先级低于算术运算符,运算符的优先级的详细情况见最后。
在工作中,很多程序员容易不小心将两个等号写成一个等号,因此当判断整型变量i是否等于3时,我们可以写为3= =i,即把常量写在前面而把变量写在后面。这是因为当不小心将两个等号写为一个等号时,变量在前面就会导致编译不通,从而快速发现错误〈这种写法属于华为公司内部的一条编程规范)。
同时,在编写程序时,如果我们需要判断三个数是否相等,那么绝对不可以写为if(5= =5= =5),这种写法的值无论何时都为假,为什么?因为首先5= =5得到的结果为1,,然后1= =5得到的结果为0。如果要判断三个变量a、 b、c是否相等,那么不能写为a= =b= =c,而应写为a= =b &&b= =c。
4.c语言运算级优先级表
注意:
结合方向要注意,优先级2和14和条件运算符的结合方向是从右到左的 |
课后习题自测
1.算术运算符包含+、-、*、/和%,乘、除、取余运算符的优先级高于加、减运算符
A.正确 B.错误
答案
A
2.%取余(也称为取模运算)可以用于浮点数
A正确 B错误
答案:B
解释:取模运算只能用于整型数,不能用于浮点数
3.关系运算符的优先级高于算术运算符A正确B错误
答案:B
解释:关系运算符优先级是低于算术运算符的,记住这个对于初试大题编写是必须的
4.代码编写int a=5; if(3<a<10)这种编写方式是否正确
A 正确 B错误
答案:B
解释:在程序中是错误的.首先,无论a是大于3还是小于3,对于3<a这个表达式只有1或O两种结果.由于1和0都是小于10的,所以无论a的值为多少,这个表达式的值始终为真,因此在判断变量a是否大于3且同时小于10时,要写成a>3&& a<10,这才是正确的写法.