C编程语言的运算符优先级表

时间:2013-06-28 16:09:03

标签: c operator-precedence c11

列出C语言中所有运算符的正确运算符优先级表是什么样的?

我在网上进行了大量搜索,发现了很多这样的优先级表。唉,我还没有找到一个满足这些要求的人:

  • 列出ISO 9899:2011中定义的C语言中的所有运算符,而不在任何C ++运算符中混用。
  • 列出完整且正确的优先顺序中的运算符。

3 个答案:

答案 0 :(得分:5)

enter image description here


<强>解释

Prec。表示运算符优先级,其中组1具有最高优先级,组17具有最低优先级。

Assoc。表示operator associativity,其中适用。关联性可以是从左到右或从右到左。

<强>来源

我对这篇文章的抱负是在Stack Overflow现场提供一个运算符优先级表,这是正确和规范的。此运算符优先级表直接对应于ISO 9899:2011的第6.5章,其中我们可以阅读(6.5 / 3):

  

运算符和操作数的分组由语法指示。 85)

然后作为评论,在信息性(非规范性)脚注中:

  

85)语法指定运算符在表达式求值中的优先级,与本子条款的主要子条款的顺序相同,首先是最高优先级。 / - /

     

在每个主要子条款中,运算符具有相同的优先级。在每个子条款中通过其中讨论的表达式的语法指示左或右相关性。

表中的所有正式运营商名称均来自第6.5章,其中这样的名称可以在规范性文本中找到。非正式名称包含在程序员社区可能比标准中给出的另一个名称更熟悉的情况中。

答案 1 :(得分:1)

下面:

http://basen.oru.se/c/operators.html

(我添加 _Alignof ,我认为这是C11中唯一的新操作员,我自己的桌子,并在那里发布。也许这是作弊?关于如何改进表格的意见和建议是欢迎。)

答案 2 :(得分:0)

这个网站有一个非常好的优先级表:

http://www.difranco.net/compsci/C_Operator_Precedence_Table.htm