c语言中乘号与%的优先级,3.5、运算符与优先级(下)

好了,在我们继续之前,我们先来做一道数学题

1+1*2=?

一道小学数学题,在你小学数学合格的情况下,你应该回答为2而不是4

为什么?

因为我们都知道的运算法则:先乘除后加减

在我们初中学习了乘方后,对于下面的题目

3*2^2   (这里的^代表数学中的乘方)

我们也能很快的得出正确的答案:12,而不是36

因为应该先计算乘方。

但是,对于下面的这个式子

(3*2)^2

它的值便是36,因为括号中的内容应该最先计算

从上面不难发现,对于一个式子中出现的各种计算,人们规定了他们运算的先后顺序

这种顺序便是优先级。只有按照正确的顺序进行计算,得出的结果才是合理且正确的

在编程中,同样有着优先级的规定

下面这个简单的表中给出了我们已经学习过的运算的优先级

优先级(不完整)符号名称或含义用法

1()圆括号(表达式)

2+一元正号+表达式

-一元负号-表达式

(type)强制类型转换(double)123

++自增++变量

变量++

--自减--变量

变量--

sizeof长度运算符sizeof var

3*算数乘号表达式1*表达式2

/算术除号表达式1/表达式2

%求余表达式1%表达式2

4+算术+表达式1+表达式2

-算术减号表达式1-表达式2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中,如果表达式有多个运算符,那么运算时需要遵守运算符优先级和结合性的规则。C语言中的运算符优先级和结合性如下: 1. 括优先级最高,括内的表达式先计算。 2. 单目运算符优先级第二高,包括正负、逻辑非、按位取反等。 3. 乘除运算符优先级第三高,包括乘`*`、除`/`和取模运算符`%`,它们的结合性为从左到右。 4. 加减运算符优先级第四高,包括加`+`和减`-`,它们的结合性为从左到右。 5. 移位运算符优先级第五高,包括左移位运算符`<<`和右移位运算符`>>`,它们的结合性为从左到右。 6. 大小关系运算符和相等关系运算符优先级第六高,包括小于`<`、大于`>`、小于等于`<=`、大于等于`>=`、等于`==`和不等于`!=`。 7. 按位与运算符优先级第七高,包括按位与`&`。 8. 按位异或运算符优先级第八高,包括按位异或`^`。 9. 按位或运算符优先级第九高,包括按位或`|`。 10. 逻辑与运算符优先级第十高,包括逻辑与`&&`。 11. 逻辑或运算符优先级第十一高,包括逻辑或`||`。 12. 条件运算符优先级最低,包括条件运算符`?:`,它的结合性为从右到左。 在表达式中,括可以改变运算符优先级和结合性,因此可以使用括来明确表达式的计算顺序。如果表达式中有多个运算符,可以使用上述规则来计算表达式的值。如果不确定表达式的值,可以使用括来明确表达式的计算顺序。 例如,如下表达式: ```c a + b * c / d - e ``` 其中,乘法和除法的优先级高于加法和减法,因此表达式的计算顺序为: ```c a + ((b * c) / d) - e ``` 如果要改变计算顺序,可以使用括来明确表达式的计算顺序,例如: ```c (a + b) * (c - d) ``` 这个表达式的计算顺序为: ```c (a + b) * (c - d) = (a + b) * c - (a + b) * d ``` 需要注意的是,在C语言中,除法运算符`/`的计算结果是整数商,如果要得到浮点数结果,需要将其中一个操作数强制转换为浮点类型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值