表达式与运算符 
目录
判断表达式:
c
(3==3)		//正确则值为1,否则为0
(a<b<c<=a)	//a=1,b=2,c=3	//输出1
			//a<b=1,1<c=1,1<a=1所以输出1条件表达式:
c
x>y?1:1.5
//条件表达式的值的类型为二者中较高的类型
//输出1.0(双精度)或1.5运算 
c
a=b=c;//允许连等
a=(b=4)+(c=6) // a=10
(a=3*5)=4*3//a=12
-5/3  //可能得到-1和-2(一般取靠近0的那个数)复合赋值运算符,后 5 种与位运算有关
c
+=,-=,*=,/=,%=,<<=,>>=,&=,∧=,|=左右结合 
左结合运算符:
- 同级别下从左向右进行运算:
- 左边的变量调用运算符
c
a*b/c=(a*b)/c右结合运算符:
- 同级别下从右向左进行运算
- 右边的变量调用运算符
c
m=m*i++;//i先运算再自加
m=m*++i;//i先自加再运算逗号 
- cout 时用逗号要加括号
- 表达式的值一最后一个表达式为准
c
a=3*5,a*4//a=15,表达式的值为60
(a=3*5,a*4),a+5//a的值为15,表达式的值为20- 注意
c
if(a=0){
	// 不会执行这段,因为最终传到判断框的是a的值
}
if(a=<一个非0的什么东西>){
    // 会执行这段函数
}
//就,原理参考逗号的作用& 和 | 
- &和- |用于位运算
c
a=3&5;//a=1
// 3=0011
// 5=0101
// 1=0001
a=3|5;//a=7
// 3=0011
// 5=0101
// 7=0111<< 和 >> 
- <<和- >>用于移位运算
c
a=3<<2;//a=12
// 3=0011
// 3<<2=1100=12优先级 
| 优先级 | 运算符 | 结合性 | 含义 | C/C++ | 
|---|---|---|---|---|
| 1 | :: | 作用域解析运算符 | C++ | |
| 2 | (表达式) | 分组 | ||
| 2 | () | L-R | 函数调用 | |
| 2 | () | 值构造,即 type(expr) | C++ | |
| 2 | [] | 数组下标 | ||
| 2 | -> | 间接成员运算符 | ||
| 2 | . | 直接成员运算符 | ||
| 2 | const_cast | 专用的类型转换 | C++ | |
| 2 | dynamic_cast | 专用的类型转换 | C++ | |
| 2 | reinterpret_cast | 专用的类型转换 | C++ | |
| 2 | static_cast | 专用的类型转换 | C++ | |
| 2 | typeid | 类型标识 | C++ | |
| 2 | ++ | 加 1 运算符,后缀 | ||
| 2 | -- | 减 1 运算符,后缀 | ||
| 3 | ! | R-L | 逻辑非 | |
| 3 | ~ | 位非 | ||
| 3 | + | 一元加号(正号) | ||
| 3 | - | 一元减号(负号) | ||
| 3 | ++ | 加 1 运算符,前缀 | ||
| 3 | -- | 减 1 运算符,前缀 | ||
| 3 | & | 地址 | ||
| 3 | * | 解除引用(间接值) | ||
| 3 | () | 类型转换,即(ype)expr | ||
| 3 | sizeeof | 长度,以字节为单位 | ||
| 3 | new | 动态分配内存 | C++ | |
| 3 | new [] | 动态分配数组 | C++ | |
| 3 | delete | 动态释放内存 | C++ | |
| 3 | delete[] | 动态释放数组 | C++ | |
| 4 | .* | L-R | 成员解除引用 | C++ | 
| 4 | ->* | 间接成员解除引用 | C++ | |
| 5 | * | L-R | 乘 | |
| 5 | / | 除 | ||
| 5 | ^ | 模(余数) | ||
| 6 | + | 加 | ||
| 6 | - | 减 | ||
| 7 | << | L-R | 左移 | |
| 7 | >> | 右移 | ||
| 8 | < | L-R | ||
| 8 | <= | |||
| 8 | >= | |||
| 8 | > | |||
| 9 | == | L-R | ||
| 9 | != | |||
| 10 | & | L-R | 按位 AND | |
| 11 | ^ | L-R | 按位 XOF(异或) | |
| 12 | | | L-R | 按位 OR | |
| 13 | && | L-R | 逻辑 AND | |
| 14 | || | L-R | 逻辑 OR | |
| 15 | :? | R-L | 条件 | |
| 16 | = | R-L | 简单赋值 | |
| 16 | *= | 乘并赋值 | ||
| 16 | /= | 除并赋值 | ||
| 16 | %= | 求模并赋值 | ||
| 16 | += | 加并赋值 | ||
| 16 | -= | 减并赋值 | ||
| 16 | &= | 按位 AND 并赋值 | ||
| 16 | ^= | 按位 XOR 并赋值 | ||
| 16 | |= | 按位 OR 并赋值 | ||
| 16 | <<= | 左移并赋值 | ||
| 16 | >>= | 右移并赋值 | ||
| 17 | throw | L-R | 引发异常 | C++ | 
| 18 | , | L-R | 将两个表达式合并成一个 | 
