列出 C语言中所有运算符的正确运算符优先级表将是什么样子?
我在网上进行了广泛的搜索,并发现了许多这样的优先表。唉,我还没有找到一个填充这些要求:
按照 ISO 9899:2011 中的定义,列出 C语言中的所有运算符,而不混合任何 C++ 运算符。
按完整和正确的优先级顺序列出运算符。
解释
Prec.表示运算符优先级,其中组 1 的优先级最高,组 17 的优先级最低。
Assoc.表示operator ociativity,在这种情况下适用。关联性可以是从左到右或从右到左。
Sources我对这篇文章的野心是在 Stack Overflow 现场提供一个运算符优先级表,这是正确和规范的。这个运算符优先级表直接对应于 ISO 9899:2011 的 6.5 章,我们可以阅读(6.5 / 3):
运算符和操作数的分组由语法指示。85)
然后作为评论,在信息性(非规范性)脚注中:
85)语法指定了运算符在表达式求值中的优先级,该优先级与此子子句的主要子子句的顺序相同,优先级最高。/--/
在每个主要子子句中,运算符具有相同的优先级。每个子子句中的左关联或右关联由其中讨论的表达式的语法表示。
表中所有正式的操作符名称均取自第 6.5 章,在规范文本中可以找到这样的名称。在程序员社区可能比标准中给出的名称更熟悉另一个名称的情况下,包括非正式名称。
Here:
http://basen.oru.se/c/operators.html(我在自己的表中添加了_Alignof,我认为它是 C11 中唯一的新运算符,并在那里发布。也许那是作弊?欢迎对如何改进表提出意见和建议。)
这个网站有一个非常好的优先级表:
http://www.difranco.net/compsci/C_Operator_Precedence_Table.htm本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(84条)