C/C++运算符优先级
来源:互联网 发布:神机妙算造价软件下载 编辑:程序博客网 时间:2024/06/09 16:47
C语言运算符优先级http://en.cppreference.com/w/cpp/language/operator_precedence
C++运算符优先级http://en.cppreference.com/w/cpp/language/operator_precedence
维基百科上的说明http://zh.wikipedia.org/wiki/C%E5%92%8CC%2B%2B%E9%81%8B%E7%AE%97%E5%AD%90
C语言运算符优先级
* & (类型) sizeof
否定,按位否定,增量,减量,正负号,间接,取地址,类型转换,求大小
&= ^= |=<<=>>=
各种赋值C++运算符优先级
1
::
作用域解析(C++专有) Class::age = 2;
否 由左至右2
++
后缀递增 i++
--
后缀递减 i-- {}
组合 {i++;a*=i;} ()
函数调用或变量初始化 c_tor(int x, int y) : _x(x), _y(y * 10) {}[]
数组访问 array[4] = 2; .
以对象方式访问成员 obj.age = 34; 否 ->
以指针方式访问成员 ptr->age = 34; dynamic_cast
运行时检查类型转换(C++专有) Y& y = dynamic_cast<Y&>(x); 否 static_cast
未经检查的类型转换(C++专有) Y& y = static_cast<Y&>(x); 否 reinterpret_cast
重定义类型转换(C++专有) int const* p = reinterpret_cast<int const*>(0x1234);否 const_cast
更改非常量属性(C++专有) int* q = const_cast<int*>(p); 否 typeid
获取类型信息(C++专有) std::type_info const& t = typeid(x);否 3
++
前缀递增 ++i 由右至左
--
前缀递减 --i +
一元正号 int i = +1; -
一元负号 int i = -1; !
not
逻辑非!
的备用拼写 if (!done) … ~
compl
按位取反~
的备用拼写 flag1 = ~flag2; (type)
强制类型转换 int i = (int)floatNum; *
取指针指向的值 int data = *intPtr; &
取变量的地址 int *intPtr = &data; sizeof
某某的大小 size_t s = sizeof(int); 否 new
动态内存分配(C++专有) long* pVar = new long; new[]
动态数组内存分配(C++专有) long* array = new long[20]; delete
动态内存释放(C++专有) delete pVar; delete[]
动态数组内存释放(C++专有) delete [] array; 4
.*
成员对象选择(C++专有) obj.*var = 24; 否 由左至右->*
成员指针选择(C++专有) ptr->*var = 24; 5
*
乘法 int i = 2 * 4; /
除法 float f = 10.0 / 3.0; %
模数(取余) int rem = 4 % 3; 6
+
加法 int i = 2 + 3; -
减法 int i = 5 - 1; 7
<<
比特左移 int flags = 33 << 1; >>
比特右移 int flags = 33 >> 1; 8
<
小于关系 if (i < 42) … <=
小于等于关系 if (i <= 42) ... >
大于关系 if (i > 42) … >=
大于等于关系 if (i >= 42) ... 9
==
eq
等于关系==
的备用拼写 if (i == 42) ... !=
not_eq
不等于关系!=
的备用拼写 if (i != 42) … 10
&
bitand
比特 AND&
的备用拼写 flag1 = flag2 & 42; 11
^
xor
比特 XOR(独占or)^
的备用拼写 flag1 = flag2 ^ 42; 12
|
bitor
比特 OR(包含or)|
的备用拼写 flag1 = flag2 | 42; 13
&&
and
逻辑 AND&&
的备用拼写 if (conditionA && conditionB) … 14
||
or
逻辑 OR||
的备用拼写 if (conditionA || conditionB) ... 15
c?t:f
三元条件运算 int i = a > b ? a : b; 否 由右至左16
=
直接赋值 int a = b; +=
以和赋值 a += 3; -=
以差赋值 b -= 4; *=
以乘赋值 a *= 5; /=
以除赋值 a /= 2; %=
以取余数赋值 a %= 3; <<=
以比特左移赋值 flags <<= 2; >>=
以比特右移赋值 flags >>= 2; &=
and_eq
以比特AND赋值&=
的备用拼写 flags &= new_flags; ^=
xor_eq
以比特XOR赋值^=
的备用拼写 flags ^= new_flags; |=
or_eq
以比特OR赋值|=
的备用拼写 flags |= new_flags; 17
throw
抛出异常 throw EClass(“Message”);
否 18
,
逗号运算符 for (i = 0, j = 0; i < 10; i++, j++) …由左至右
0 0
- c 运算符 优先级
- c 运算符 优先级
- C运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- C 运算符优先级
- C运算符优先级
- c 运算符 优先级
- C运算符优先级
- Magento 2,无法登录后台,循环登录问题解决方法
- Linux下安装php开发框架yaf
- Azkaban使用的两个设计模式
- SVN版本问题:This client is too old to work with working copy
- JSONModel解析数据成Model
- C/C++运算符优先级
- Unity3D技术之Awake和Start有什么区别
- js屏蔽类
- 分享图片和内容
- Kafka介绍
- js判断用户的浏览设备是移动设备还是PC
- Unity3D技术之NGUI详解
- hadoop提交作业自定义排序和分组
- 关于mysql中实用的修改表信息的一些sql