C 编程中的运算符优先级

发布于 2025-01-02 07:54:51 字数 420 浏览 1 评论 0原文

我目前正在学习 C 编程(我的第一门编程语言)。 我对运算符的优先级有点困惑。 算术运算符的优先级如下。

  1. *
  2. /
  3. %
  4. +
  5. -

这至少是我书中给出的。 我感到困惑的是,在理论考试中我该如何解决表达式? 我尝试用上面给出的顺序解决许多表达问题,但未能得到正确的答案。

给出以下定义:

int a = 10, b = 20, c;

我们如何解决这个表达式?

a + 4/6 * 6/2 

这是我书中的一个例子。

I am currently learning C Programming ( my first programming language ).
I am a little bit confused with the operators precedence.
Arithmetic operators precedence are as follows.

  1. *
  2. /
  3. %
  4. +
  5. -

This is what is given in my book at least.
What i am confused is about how do i go solving expressions when it comes to my theory exams ?
I tried solving many expressing with the order given above but fail to get a correct answer.

Given the following definitions:

int a = 10, b = 20, c;

How would we solve this expression?

a + 4/6 * 6/2 

This is an example in my book.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独﹏钓一江月 2025-01-09 07:54:51
    a + 4/6 * 6/2 
 = 10 + 4/6 * 6/2
 = 10 + 0*6/2
 = 10 + 0/2
 = 10

请注意,当使用整数除法时,4/6 的计算结果为 0

    a + 4/6 * 6/2 
 = 10 + 4/6 * 6/2
 = 10 + 0*6/2
 = 10 + 0/2
 = 10

Note that 4/6 evaluates to 0 as integer division is used.

眉黛浅 2025-01-09 07:54:51

/* 的优先级在 C 中是相同的,就像在数学中一样。问题是,在数学中以下表达式是等价的,而在 C 中它们可能不是:

(a/b) * (c/d)
(a/b*c) / d

这些在 C 中不等价,因为 if a, b, cd是整数,/运算符表示整数除法(它只产生结果的整数部分)。

例如,

(7/2)*(4/5); //yelds 0, because 4/5 == 0
(7/2*4)/5; //yields 2

一般良好的编码实践是明确表达您的意图。特别是,当有疑问时,请加上括号。有时甚至当你不在的时候。

The precedence of / and * is the same in C, just as it is in mathematics. The problem is that in mathematics the following expressions are equivalent, whereas in C they might not be:

(a/b) * (c/d)
(a/b*c) / d

These aren't equivalent in C because if a, b, c, and d are integers, the / operator means integer division (it yields only the integral part of the result).

For example,

(7/2)*(4/5); //yelds 0, because 4/5 == 0
(7/2*4)/5; //yields 2

A general good coding practice is being explicit about your intentions. In particular, parenthesize when in doubt. And sometimes even when you're not.

云淡风轻 2025-01-09 07:54:51

现实生活中一种安全的解决方案是始终使用括号 ( )

One safe real life solution is to always use parentheses ( )

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文