C/C++优先级和结合率
来源:互联网 发布:叶根友特楷简体 mac版 编辑:程序博客网 时间:2024/06/05 01:25
C优先级列表
PrecedenceOperatorDescriptionExampleAssociativity1()
[]
->
.
::
++
--
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 right4
*
/
%
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
C++优先级列表
PrecedenceOperatorDescriptionExampleAssociativity1
()
[]
->
.
::
++
--
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 right2
!
~
++
--
-
+
*
&
(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 left3
->*
.*
Member pointer selector
Member pointer selector
ptr->*var = 24;
obj.*var = 24;
*
/
%
Multiplication
Division
Modulus
int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;
+
-
Addition
Subtraction
int i = 2 + 3;
int i = 5 - 1;
<<
>>
Bitwise shift left
Bitwise shift right
int flags = 33 << 1;
int flags = 33 >> 1;
<
<=
>
>=
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 right8
==
!=
Comparison equal-to
Comparison not-equal-to
if( i == 42 ) ...
if( i != 42 ) ...
=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
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 left16,Sequential evaluation operatorfor( i = 0, j = 0; i < 10; i++, j++ ) ...left to right
- C/C++优先级和结合率
- C语言运算符的优先级和结合
- C语言运算符优先级和结合性表
- C语言 非法表达式 优先级和结合性
- C语言运算符优先级和结合性表
- C及C++运算符的优先级和结合性
- C/C++符号优先级和左/右结合性
- C语言运算符优先级和结合性
- C语言运算符的优先级和结合性一览表
- C语言运算符的优先级和结合性
- c语言运算符的优先级和结合性
- C 语言操作符优先级和结合性
- C语言运算符的优先级和结合性一览表
- C语言运算符的优先级和结合性一览表
- C语言运算符优先级和结合性预览表
- 41 C语言运算符的优先级和结合性
- C语言运算符优先级和结合性
- C操作符优先级、结合性
- Java多线程应用方法全解密
- 总结线程交互
- 发现好多语句谷歌浏览器不支持。(这里做个小总结)
- 人生规划五句话与你分享
- PIC单片机的中断过程
- C/C++优先级和结合率
- 6.087 Practical Programming in C, lec4:More control flow. Input and output.
- linux设备驱动程序(第三版)读书笔记2
- 正确的加载DLL
- document.location.reload和document.location.href的比较
- do...while(0)的妙用
- 一段关于文字音乐高光效果的设置代码摘录.
- 常用命令行
- 每天进步一点点