首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C -multiplication和除法中,哪个具有更高的优先级?

在C -multiplication和除法中,哪个具有更高的优先级?
EN

Stack Overflow用户
提问于 2014-02-02 01:08:40
回答 3查看 12.5K关注 0票数 10
代码语言:javascript
复制
#include <stdio.h>

int main(void) 
{
int w=2*3/2;             //1
int x=5%2*3/2;           //2
printf("%d  %d",w,x);
return 0; 
}

输出3 1

在(1)中,它给予乘法比除法更高的优先级,而在(2)中,相反。为什么会这样呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-02 01:09:39

它们具有相同的优先级,并且总是从左到右执行。

代码语言:javascript
复制
2*3/2 = (2*3)/2 => 3
            6/2 => 3 

代码语言:javascript
复制
5%2*3/2 = ((5%2)*3)/2 => 1
              (1*3)/2 => 1
                  3/2 => 1 (integer gets truncated)
票数 31
EN

Stack Overflow用户

发布于 2014-02-02 01:19:55

我的朋友乘法和除法在这段代码中有相同的precedence.But,这两个都在一个表达式中,所以当两个运算符在一个表达式中组合在一起时,我们检查“结合性”,这里是“从左到右”,所以在

代码语言:javascript
复制
1)it will first solve multiplication than division.left to right

一个输入

代码语言:javascript
复制
2)it will first solve % then * than /.left to right

有关更多信息,请仔细阅读C中运算符的结合性和优先级,你很容易在互联网上找到这一点。

票数 2
EN

Stack Overflow用户

发布于 2016-11-02 11:49:22

在这种情况下,从左到右都算数。但不管怎样!在一些学术文献中,隐含的乘法被解释为具有比除法更高的优先级。因此,有一种不同的方式可以看到这一点。这也是为什么数学家或内科医生在一开始就试图避免这种记法,而是写一个分数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21500961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档