2012-05-14 50 views
0

pointing to ->运算符与关节运算符,按位运算符和其他指针运算符(如&)的优先级是什么。指向运算符的优先级

+1

http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B %2B#Operator_precedence – Jon

+0

“C中的运算符优先级”给了我相当不错的搜索结果。你错过了什么? –

+0

编写优先级测试也很容易。 – Vernon

回答

4

“高”。请参阅operator precedence table。请注意,链接表也包含C++,因此您需要仔细阅读它。

Here's another table,这是C只。您可以看到,共享->优先级别的唯一运营商是()(函数调用),[](数组索引)和.(元素选择)。

+0

感谢您的链接! – Shash

1

它在'C'中共享高(est)优先级。 - >的优先级高于&。

可以参考优先级表here(C表)和here(维基 - 包括C++)

+0

它*份额*最高的优先顺序。 – user7116

+0

我把'EST'放在大括号中以表示相同。但是,既然你提到了它,我也修改了我的答案。 :) – Jay

+0

感谢您的链接! – Shash

1

作为后缀运算符,->具有最高优先级(与.成员选择运算符,后缀++--[],和函数调用()一起)。所以像&foo->bar这样的表达式被解释为&(foo->bar)

如果您有多个具有相同优先级的运算符,则它们从左到右评估。例如,[]()也后缀运算符,所以a[i]->b被解释为(a[i])->bf()->m被解释为(f())->mp++->q被解释为(p++)->q