6、算术运算符与算术表达式

目录

一、算术运算符

二、算术表达式

三、优先级与结合性

1. 算术运算符的优先级

2. 算术运算符的结合性

四、自增/自减运算符


一、算术运算符

算术运算符包括两个单目运算符(正和负)和5个双目运算符(即乘法、除法、取模、加法和减法)

在上述算术运算符中,取模运算符“%”用于计算两个整数相除得到的余数,并且取模运算符的两侧均为整数,如7%4的结果是3。

注意1:其中的单目正运算符是冗余的,也就是为了与单目负运算符构成一对而存在的。单目正运算符不会改变任何数值,如不会将一个负值表达式改为正。

注意2:运算符“-”作为减法运算符,此时为双目运算符,如5-3。“-”也可作负值运算符,此时为单目运算,如-5等。

二、算术表达式

在表达式中使用算术运算符,则该表达式称为算术表达式。例如:

两个整数相除的结果为整数,如7/4的结果为1,舍去的是小数部分。但是,如果其中的一个数是负数时会出现什么情况呢?此时机器会采取“向零取整”的方法,即为-1,取整后向0靠拢。

注意:如果用+、-、*、/运算的两个数中有一个为实数,那么结果是double型,这是因为所有实数都按double型进行运算。

三、优先级与结合性

C语言中规定了各种运算符的优先级和结合性,首先来看一下有关算术运算符的优先级。

1. 算术运算符的优先级

在进行表达式求值时,通常会按照运算符的优先级别从高到低依次执行。在算术运算符中,*、/、%的优先级别高于+、-的级别。例如,如果在表达式中同时出现*和+,那么应先运算乘法:

在上述表达式中,因为*比+的优先级高,所以会先进行y*z的运算,最后加上x。

注意:在表达式中常会出现这样的情况,例如,要进行a+b,再将结果与c相乘,一不小心将表达式写为a+b*c。因为*的优先级高于+,这样的话就会先执行乘法运算,显然不是期望得到的结果。这时应该怎么办呢?可以使用括号“( )”将+运算级别提高,使其先进行运算,就可以得到预期的结果了,例如解决上式的方法是(a+b)*c。括号可以使其中的表达式先进行运算的原因在于—括号在所有运算符中的优先级别是最高的。

2. 算术运算符的结合性

当算术运算符的优先级相同时,结合方向为“自左向右”。例如:

因为减法和加法的优先级是相同的,所以b先与减号相结合,执行a-b的操作,然后执行加c的操作,这样的操作过程就称为“自左向右的结合性”。

四、自增/自减运算符

在C语言中还有两个特殊的运算符,即自增运算符“++”和自减运算符“--”。自增运算符和自减运算符对变量的操作分别是增加1和减少1。

自增运算符和自减运算符可以放在变量的前面或者后面,放在变量前面称为前缀,放在后面称为后缀。使用的一般方法如下:

在上面这些例子中,运算符的前后位置不重要,因为所得到的结果是一样的,自减就是

减1,自增就是加1。

注意:在表达式内部,作为运算的一部分,两者的用法可能有所不同。如果运算符放在变量前面,那么变量在参加表达式运算之前完成自增或者自减运算;如果运算符放在变量后面,那么变量的自增或者自减运算在变量参加了表达式运算之后完成。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值