C++运算符优先级
来源:互联网 发布:spring apache shiro 编辑:程序博客网 时间:2024/05/16 02:05
C++语言操作符优先级
优先级
运算符
含
示
结合方向
要求运算
对象的个数
可重载性
1
::
全局解析
::x
自右至左
一元操作符
不可重载
::
类域解析
X::x
自左至右
二元操作符
不可重载
2
.
直接成员选择运算符
s.len
自左至右
二元操作符
不可重载
( )
圆括号
可重载
( )
函数调用
rand( )
( )
类型构造
int( ch)
[ ]
下标运算符
a[i]
二元操作符
->
间接成员选择运算符
p->len
二元操作符
++
后增
n++
自右至左
一元操作符
- -
后减
n- -
一元操作符
3
!
逻辑非运算符
!p
自右至左
一元操作符
可重载
~
按位取反运算符
~s
++
前增运算符
++n
- -
前减运算符
- -n
-
负号运算符
-n
*
反引用运算符
*p
&
求地址运算符
&x
new
空间分配
new int(9)
delete
空间释放
delete p
(类型)
类型转换运算符
(int)ch
二元操作符
sizeof
长度运算符
sizeof(a)
一元操作符
不可重载
4
*
乘法运算符
m*n
自左至右
二元操作符
可重载
/
除法运算符
m/n
%
求余运算符
m%n
5
+
加法运算符
m+n
自左至右
二元操作符
可重载
-
减法运算符
m-n
6
<<
左移运算符
m<<n
自左至右
二元操作符
可重载
>>
右移运算符
m>>n
7
<
小于
x<y
自左至右
二元操作符
可重载
<=
小于等于
x<=y
>
大于
x>y
>=
大于等于
x>=y
8
==
等于运算符
x==y
自左至右
二元操作符
可重载
!=
不等于运算符
x!=y
9
&
按位与运算符
s&t
自左至右
二元操作符
可重载
10
^
按位异或运算符
s^t
自左至右
二元操作符
可重载
11
|
按位或运算符
s|t
自左至右
二元操作符
可重载
12
&&
逻辑与运算符
u&&v
自左至右
二元操作符
可重载
13
||
逻辑或运算符
u||v
自左至右
二元操作符
可重载
14
?
条件运算符
u? x : y
自左至右
三元操作符
不可重载
15
=
赋值运算符
n=22
自右至左
二元操作符
可重载
+=
先加,再赋值
n+=8
-=
先减,再赋值
n-=4
*=
先乘,再赋值
n*= -1
/=
先除,再赋值
n/10
%=
先求余,再赋值
n%=10
>>=
先左移位,再赋值
n>>=1
<<=
先右移位,再赋值
N<<=1
&=
先按位与,再赋值
s&=mask
^=
先按位异或,再赋值
s^=mask
|=
先按位或,再赋值
s|=mask
16
,
逗号运算符
++m,- -n
自左至右
可重载
运算符优先级记忆方法:
说明:
C++输入输出是通过iostream库来实现的。在iostream库中,输入输出操作分别有istream(输入流)和ostream(输出流)两个类提供,而iostream则是这两个类的派生类。它允许进行双向的I/O操作。istream的输入操作可以认为是一个数据抽取的过程,通过右移操作符“>>”从输入流抽取数据;而ostream的输出操作则可以认为是一个数据插入的过程,通过左移操作符“<<”将数据插入到输出流中。
用法:cin>>a;
附二
(显式强制类型转换)type conversion(类型转换)cast_name<type>(expr)Rsizeofsize of object(对象的大小)sizeof exprRsizeofsize of type(类型的大小)sizeof(type)R++prefix increment(前自增操作)++lvalueR--prefix decrement(前自减操作)--lvalueR~bitwise NOT(位求反)~exprR!logical NOT(逻辑非)!exprR-unary minus(一元负号)=-exprR+unary plus(一元正号)=+exprR*dereference(解引用)*exprR&address-of(取地址)&exprR()type conversion(类型转换)(type) exprRnewallocate object(创建对象)new typeRdeletedeallocate object(释放对象)delete exprRdelete[]deallocate array(释放数组)delete[] exprL->*ptr to member select(指向成员操作的指针)ptr ->*ptr_to_memberL.*ptr to member select(指向成员操作的指针)obj .*ptr_to_memberL*multiply(乘法)expr * exprL/divide(除法)expr/ exprL%modulo (remainder)(求模(求余))expr % exprL+add(加法)expr +exprL-subtract(减法)expr - exprL<<bitwise shift left(位左移)expr << exprL>>bitwise shift right(位右移)expr >> exprL<less than(小于)expr < exprL<=less than or equal(小于或等于)expr <= exprL>greater than(大于)expr > exprL>=greater than or equal(大于或等于)expr >= exprL==equality(相等)expr == exprL!=inequality(不等)expr != exprL&bitwise AND(位与)expr & exprL^bitwise XOR()expr ^ exprL|bitwise OR(位异或)expr | exprL&&logical AND(逻辑与)expr && exprL||logical OR(逻辑或)expr || exprR?:conditional(条件操作)expr ? expr : exprR=assignment(赋值操作)lvalue = exprR*=, /=, %=,compound assign(复合赋值操作)lvalue += expr, etc.R+=,-=,R<<=, >>=,R&=,|=, ^=Rthrowthrow exception(抛出异常) throw exprL,comma(逗号)expr, expr
- c 运算符 优先级
- c 运算符 优先级
- C运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- C 运算符优先级
- C运算符优先级
- c 运算符 优先级
- C运算符优先级
- string的写时拷贝
- _itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0; }2
- Android——DatePickerDialog、TimePickerDialog
- zoj2610 Puzzle
- 11步教你选择最稳定的MySQL版本
- C++运算符优先级
- linux下mysql无法启动
- 教你如何玩转数据库设计
- TCP/IP三次握手与四次挥手
- mysql innodb死锁情况分析
- 实际项目中,为什么多个css、js文件要实现合并与压缩?(了解了这你才算入门)
- C#操作Excel总结
- 并查集简要分析
- 一维二维数组的遍历