2.3 运算符与表达式(课件)-高二《程序设计基础》同步教学(人民邮电版)
2023-07-24
|
24页
|
166人阅读
|
0人下载
普通
内容正文:
2.3 运算符与表达式
2.3.1 算术运算符与算术表达式
2.3.2 赋值运算符与赋值表达式
2.3.3 关系运算符与关系表达式
2.3.4 逻辑运算符与逻辑表达式
2.3.5 其他运算符
2.3.6 运算符的优先级和结合性
C语言中的主要运算符如下:
· 算术运算符(+、−、*、/、%)
· 关系运算符(==、>、<、>= 、<= 、!=)
· 逻辑运算符(!、&&、||)
· 位运算符(<<、>>、~、!、&)
· 赋值运算符(=及其扩展赋值运算符)
· 条件运算符(?)
· 逗号运算符(,)
· 指针运算符(*、&)
· 求字节长度运算符(size of)
· 强制类型转换运算符((类型))
· 分量运算符(—>)
· 下标运算符([])
2.3.1 算术运算符与算术表达式
1.算术运算符
算术运算符对数据进行算术运算。
(1)算术运算符的类型
常用的算术运算符如下。
· + :加法运算符或正值运算符,如2+3,+5。
· - :减法运算符或负值运算符,如5-2,-3。
· * :乘法运算符,如4*5。
· / :除法运算符,如7/2。
· %:模运算符(求余运算)符,其两侧必须都为整型数据,如7%4的值为3。
(2)用法说明
· 两个整数相除结果为整数,如7/2的结果值为3,小数部分被舍去。
· 如果参加运算的两个数中有一个数为实数,此时所有实数都按double型进行计算,其结果是double数据。
· 如%符号两边有一个数不是整数,则先进行强制类型转换为整数,再求余数,如5.3%3,先进行强制类型转换:(int)(5.3)%3=2。
(3)算术运算符的优先级
C语言规定了运算符的优先级和结合性,当表达式求值时,按照运算符优先级别的高低按次序执行。结合性是指计算顺序是从左到右还是从右到左。
算术运算符的优先级和结合性如下。
· *,/,%的优先级别高于+和-的优先级。
· *,/,%为同一级,在算术表达式中,它们从左向右执行(结合性)。
2.算术表达式
使用运算符和圆括号将操作数连接起来的、符合C语言语法规则的式子称为算术表达式。例如a-b/c,(a+b)*c等都是合法的算术表达式。使用圆括号可以改变运算顺序,由于圆括号的优先级别最高,因此,圆括号内的运算总是最先进行。例如,(a+b)*c中先进行“a+b”的运算,然后乘以“c”。
由算术运算符连接表达式所构成的式子仍是算术表达式。例如“表达式*表达式”仍是表达式,它是求“*”号左边表达式的值与右边表达式的值之积。
2.3.2 赋值运算符与赋值表达式
赋值运算符“=”的作用是将一个数据赋给一个变量。
1.赋值运算符
例如“a=2”的作用是执行一次赋值操作(或称赋值运算),把常量2赋给变量a。也可以将表达式的值赋给变量,如“x=3+a”,就是把表达式“3+a”的值赋给变量x。
需要说明的是,有时“=”两侧的类型不一致,当两侧的数据都是数值型或字符型时,在赋值时要进行类型转换。
例如,若有赋值语句“x=y”,执行该语句时,y的结果转换为x的类型后,再进行赋值运算。假设x为整型,y为实型,将y赋给x时,丢弃y的小数部分,如y为3.24,则“x=3”。
2.复合赋值运算符
为了简化程序并提高编译效率,在赋值运算符“=”之前加上其他运算符,可以构成复合的运算符。
例如在“=”前加一个“+”运算符就构成一个复合运算符“+=”:“x+=3”等价于“x=x+3”。
同理,“x*=y+2”等价于“x=x*(y+2)”,“x%=2”等价于“x=x%2”等。
常用的复合赋值运算符有:+=,-=,*=,/=,%=,>>=,<<=,&=和^=。
如果用符号◇来表示“=”运算符前面的运算符,则复合的运算符可以写成:<>=。
那么,若有“a<>=b”,则它等价于:“a=a<>b”。
3.赋值表达式
赋值表达式就是由一个赋值运算符将一个变量和一个表达式连接起来的式子。其一般形式为
<变量><赋值运算符><表达式>
赋值表达式的含义是将赋值运算符右边的表达式的值赋给左边的变量。赋值表达式的值就是被赋值的变量的值。
例如,“x=3”就是将3赋给变量x。表达式“x=3”的值为3(变量“x”的值也是3)。
赋值表达式右边的表达式也可以是一个赋值表达式。例如,“ x=y= -5”,由于赋值运算符的结合性是“自右向左”,因此它等价于“x=(y= -5)”,相当于“y= -5”和“x=y”两个赋值表达式,因此变量x的值为-5,整个赋值表达式的值也等于-5。由复合的赋值运算符构成的表达式也是赋值表达式。
2.3.3 关系运算符与关系表达式
关系运算用来确定两个对象之间的大小以及是否相同等关系。
1.关系运算符
关系运算符用来比较两个数据的大小。运算的结果为逻辑值“真(1)”或“假(0)”
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。