C、C++运算符优先级列表
来源:互联网 发布:c语言逻辑运算符号 编辑:程序博客网 时间:2024/06/05 19:39
1.C语言运算符优先级
运算符按照优先级大小由上向下排列,在同一行的运算符具有相同优先级。第二行是所有的一元运算符。
* & (类型) sizeof
否定,按位否定,增量,减量,正负号,间接,取地址,类型转换,求大小
&= ^= |= <<= >>=
各种赋值
2.C++运算符优先级
[]
->
.
::
++
--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)
sizeofLogical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytesif( !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 selectorptr->*var = 24;
obj.*var = 24;left to right4*
/
%Multiplication
Division
Modulusint i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;left to right5+
-Addition
Subtractionint i = 2 + 3;
int i = 5 - 1;left to right6<<
>>Bitwise shift left
Bitwise shift rightint flags = 33 << 1;
int flags = 33 >> 1;left to right7<
<=
>
>=Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-toif( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...left to right8==
!=Comparison equal-to
Comparison not-equal-toif( i == 42 ) ...
if( i != 42 ) ...left to right9&Bitwise ANDflags = flags & 42;left to right10^Bitwise exclusive ORflags = flags ^ 42;left to right11|Bitwise inclusive (normal) ORflags = flags | 42;left to right12&&Logical ANDif( conditionA && conditionB ) ...left to right13||Logical ORif( conditionA || conditionB ) ...left to right14? :Ternary conditional (if-then-else)int i = (a > b) ? a : b;right to left15=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=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 assignint 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 uation operatorfor( i = 0, j = 0; i < 10; i++, j++ ) ...left to right
例如:C++中
1)y=*px++ 相当于y=*(px++) (++优先级高)
2)&ptr->a等于&(ptr->a)而不是等于(&ptr)->a
3)逻辑运算符的优先级: !(非) > &&(与) > ||(或)
4)关系运算符优先级
< <= > >= == !=
优先级相同(高) 优先级相同(低)
5) 条件运算符优级高于赋值运算符,低于逻辑运算符 x=a>b?a:b;
6)有10种复合运算符:+=, -=, *=, /=, %=,<<=,>>=,&=,^=,|=
- C++:运算符优先级列表
- C运算符优先级列表
- c运算符优先级列表
- C/C++运算符优先级列表
- C语言运算符优先级列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级详细列表
- C语言运算符优先级 详细列表
- c语言运算符优先级列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- C语言运算符优先级 详细列表
- 37signals的RoR架构
- Oracle的三种高可用集群方案
- (总结)推荐Google的DNS解析服务器8.8.8.8
- 【转】如何在weka中加入自己的算法
- Linux内核对CPU热插拔的支持
- C、C++运算符优先级列表
- 伪数组代码&&矩阵相乘
- 验证最新可用代理 For http://www.5uproxy.net 多线程版
- Linux是如何获知处理器数量的
- might_sleep()
- Nginx作为最前端的Web cache系统
- 链表的分类
- 3GPP TS 24.007 (1) "Mobile radio interface signalling layer 3; General Aspects" V10.0.0
- 《30天精通iPhone手机编程》-Day19-电子琴