C++运算符的优先级与结合性
来源:互联网 发布:centos搜狗输入法 编辑:程序博客网 时间:2024/05/14 03:36
http://www.cppreference.com/operator_precedence.html
Precedence | Operator | Description | Example | Associativity |
---|---|---|---|---|
1 | () [] -> . :: ++ -- | Grouping operator Array access Member access from a pointer Member access from an object Scoping operator Post-increment Post-decrement | (a + b) / 4; array[4] = 2; ptr->age = 34; obj.age = 34; Class::age = 2; for( i = 0; i < 10; i++ ) ... for( i = 10; i > 0; i-- ) ... | left to right |
2单目 | ! ~ ++ -- - + * & (type) sizeof | Logical negation Bitwise complement Pre-increment Pre-decrement Unary minus Unary plus Dereference Address of Cast to a given type Return size in bytes | if( !done ) ... flags = ~flags; for( i = 0; i < 10; ++i ) ... for( i = 10; i > 0; --i ) ... int i = -1; int i = +1; data = *ptr; address = &obj; int i = (int) floatNum; int size = sizeof(floatNum); | right to left |
3 | ->* .* | Member pointer selector Member pointer selector | ptr->*var = 24; obj.*var = 24; | left to right |
4算 | * / % | Multiplication Division Modulus | int i = 2 * 4; float f = 10 / 3; int rem = 4 % 3; | left to right |
5术 | + - | Addition Subtraction | int i = 2 + 3; int i = 5 - 1; | left to right |
6 | << >> | Bitwise shift left Bitwise shift right | int flags = 33 << 1; int flags = 33 >> 1; | left to right |
7逻辑 | < <= > >= | Comparison less-than Comparison less-than-or-equal-to Comparison greater-than Comparison geater-than-or-equal-to | if( i < 42 ) ... if( i <= 42 ) ... if( i > 42 ) ... if( i >= 42 ) ... | left to right |
8比较 | == != | Comparison equal-to Comparison not-equal-to | if( i == 42 ) ... if( i != 42 ) ... | left to right |
9 | & | Bitwise AND | flags = flags & 42; | left to right |
10 | ^ | Bitwise exclusive OR | flags = flags ^ 42; | left to right |
11 | | | Bitwise inclusive (normal) OR | flags = flags | 42; | left to right |
12 | && | Logical AND | if( conditionA && conditionB ) ... | left to right |
13 | || | Logical OR | if( conditionA || conditionB ) ... | left to right |
14后 | ? : | Ternary conditional (if-then-else) | int i = (a > b) ? a : b; | right to left |
15三 | = += -= *= /= %= &= ^= |= <<= >>= | Assignment operator Increment and assign Decrement and assign Multiply and assign Divide and assign Modulo and assign Bitwise AND and assign Bitwise exclusive OR and assign Bitwise inclusive (normal) OR and assign Bitwise shift left and assign Bitwise shift right and assign | int a = b; a += 3; b -= 4; a *= 5; a /= 2; a %= 3; flags &= new_flags; flags ^= new_flags; flags |= new_flags; flags <<= 2; flags >>= 2; | right to left |
16类 | , | Sequential evaluation operator | for( i = 0, j = 0; i < 10; i++, j++ ) ... | left to right |
地址运算、括号、类运算或者域运算的,最前面;
单目运算(自己都相同),总比其他多目运算优先级高;
成员地址,特殊群;
常规运算(双目),次之;
位移运算,特殊夹杂;
逻辑比较,次之;
位运算、逻辑,次之;
后三类:三目、赋值、逗号
共四十来个运算符,去重估计有45种;
单目、三目、赋值,特殊结合性
- C运算符的优先级与结合
- C运算符的优先级与结合
- 说说C语言运算符的“优先级”与“结合性”
- C语言运算符的优先级与结合性
- 说说C语言运算符的“优先级”与“结合性”
- C语言运算符的优先级与结合性
- 说说C语言运算符的“优先级”与“结合性”
- 运算符的优先级与结合性
- C语言运算符优先级与结合性
- C语言运算符优先级与结合性
- C语言运算符优先级与结合性
- C语言的运算符的优先级与结合性+ASCII表
- C及C++运算符的优先级和结合性
- C语言运算符的优先级和结合性一览表
- C语言运算符的优先级和结合性
- c语言运算符的优先级和结合性
- c语言运算符的优先级及其结合性
- C语言运算符的优先级和结合性一览表
- 使用mysql odbc进行mysql和mssql的数据转换
- 做HP-UX技术多年的感悟:IT人士之成功之6大步骤
- 对Loki::Tuple的扩展EasyTuple
- 简单OCR实现原理
- 一项失败的工作
- C++运算符的优先级与结合性
- C与C++的区别
- mysql数据库和备份与恢复
- 思维导图,linux 版族谱
- 开始vim
- SQLServer和Oracle常用函数对比
- 脚本爱好者 网站
- XML parser
- C#通过webRequest保持在同一Session中Post数据收藏