运算符优先级:
域名解析符最高;
然后是前置增量符/前置减量符/括号/数组下标/指针访问符;
单目运算符比双目运算符高;
算术双目比其它双目高;
位运算高于关系运算;
关系运算高于按位运算(&, |, ^);
按位运算高于逻辑运算;
三目的只有一个条件运算(?:),低于逻辑运算
赋值运算仅比 , (顺序运算)高
Precedence | Operator | Description | Associativity |
---|---|---|---|
1 | `::` | Scope resolution | Left-to-right |
2 | `++` `--` | Suffix/postfix increment and decrement | |
`()` | Function call | ||
`[]` | Array subscripting | ||
`.` | Element selection by reference | ||
`->` | Element selection through pointer | ||
`typeid()` | Run-time type information (see [typeid](http://en.cppreference.com/w/cpp/language/typeid)) | ||
`const_cast` | Type cast (see [const_cast](http://en.cppreference.com/w/cpp/language/const_cast)) | ||
`dynamic_cast` | Type cast (see [dynamic_cast](http://en.cppreference.com/w/cpp/language/dynamic_cast)) | ||
`reinterpret_cast` | Type cast (see [reinterpret_cast](http://en.cppreference.com/w/cpp/language/reinterpret_cast)) | ||
`static_cast` | Type cast (see [static_cast](http://en.cppreference.com/w/cpp/language/static_cast)) | ||
3 | `++` `--` | Prefix increment and decrement | Right-to-left |
`+` `-` | Unary plus and minus | ||
`!` `~` | Logical NOT and bitwise NOT | ||
`(*type*)` | Type cast | ||
`*` | Indirection (dereference) | ||
`&` | Address-of | ||
`sizeof` | Size-of | ||
`new`, `new[]` | Dynamic memory allocation | ||
`delete`, `delete[]` | Dynamic memory deallocation | ||
4 | `.*` `->*` | Pointer to member | Left-to-right |
5 | `*` `/` `%` | Multiplication, division, and remainder | |
6 | `+` `-` | Addition and subtraction | |
7 | `<<` `>>` | Bitwise left shift and right shift | |
8 | `<` `<=` | For relational operators < and ≤ respectively | |
`>` `>=` | For relational operators > and ≥ respectively | ||
9 | `==` `!=` | For relational = and ≠ respectively | |
10 | `&` | Bitwise AND | |
11 | `^` | Bitwise XOR (exclusive or) | |
12 | `|` | Bitwise OR (inclusive or) | |
13 | `&&` | Logical AND | |
14 | `||` | Logical OR | |
15 | `?:` | Ternary conditional | Right-to-Left |
16 | `=` | Direct assignment (provided by default for C++ classes) | |
`+=` `-=` | Assignment by sum and difference | ||
`*=` `/=` `%=` | Assignment by product, quotient, and remainder | ||
`<<=` `>>=` | Assignment by bitwise left shift and right shift | ||
`&=` `^=` `|=` | Assignment by bitwise AND, XOR, and OR | ||
17 | `throw` | Throw operator (exceptions throwing) | |
18 | `,` | Comma | Left-to-right |
原文链接: https://www.cnblogs.com/newhand-liu/archive/2012/03/21/2793299.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/44725
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!