数据类型范围与运算符优先级
最新Coding时发现运算符优先级,自己有个别记不清楚,记录下。
1. 常见数据范围
数据类型 | 字节(byte) | 最小值 | 最大值 |
---|---|---|---|
char | 1 | -128 | 127 |
unsigned char | 1 | 0 | 255 |
short | 2 | -32768 | 32767 |
unsigned short | 2 | 0 | 65535 |
unsigned int | 4 | 0 | 4294967295 |
int | 4 | -2147483648 | 2147483647 |
unsigned long | 4 | 0 | 4294967295 |
long | 4 | -2147483648 | 2147483647 |
long long | 8 | -9223372036854775808 | 9223372036854775807 |
unsigned long long | 8 | 0 | 18446744073709551615 |
__int64 | 8 | -9223372036854775808 | 9223372036854775807 |
unsigned __int64 | 8 | 0 | 18446744073709551615 |
注意:long在32位下是4字节,在64位下表现为8字节
2. 运算符优先级和结合律
优先级 | 运算符 | 结合律 |
---|---|---|
1 | 后缀运算符:[] () · -> ++ --(类型名称){列表} | 从左到右 |
2 | 一元运算符:++ – ! ~ + - * & sizeof Alignof | 从右到左 |
3 | 类型转换运算符:(类型名称) | 从右到左 |
4 | 乘除法运算符:* / % | 从左到右 |
5 | 加减法运算符:+ - | 从左到右 |
6 | 移位运算符:<< >> | 从左到右 |
7 | 关系运算符:<<= >>= | 从左到右 |
8 | 相等运算符:== != | 从左到右 |
9 | 位运算符 AND:& | 从左到右 |
10 | 位运算符 XOR:^ | 从左到右 |
11 | 位运算符 OR:| | 从左到右 |
12 | 逻辑运算符 AND:&& | 从左到右 |
13 | 逻辑运算符 OR:|| | 从左到右 |
14 | 条件运算符:?: | 从右到左 |
15 | 赋值运算符: = += -= *= /= %= &= ^= |= <<= >>= | 从右到左 |
16 | 逗号运算符:, | 从左到右 |