关系运算符:
大于: >
小于: <
等于: ==
逻辑运算符:
位与(短路与):&
位或: |
位异或: ^
取反: ~
左移: <<
右移: >>
使用事项:
**位与(&)
1):清0特定位(mask中特定位置0,其他位置为1, s = s & mask)。
2):取某数中指定位(mask中特定位置1,其他位为0,s = s & mask)
**位或(|)
1):将某位特定位置为1,其他位不变(mask特定位置为1,其他位为0)
**右移(>>): 用符号位来补位
**左移(<<): 用0来补位。
**异或(^):
1):使用特定位的值取反(mask 特定位置为1,其他位为0)
2):不使用中间变量。
如:a = a1; b = b1;
a = a ^ b;
b = a ^ b;
a = a ^ b;
指针运算符: 用于取内容(*)和取地址(&)两种运算。
指针和数组:
如: int num = 5; 在计算机内存储方式为:0x00000005
区分指向的内存空间和对应的内存空间
如:num++:对num对应的内存空间的值加1。
p++: 对p 对应的内存空间的值加1(步长)。
*p:根据p对应的内存空间里保存的地址找到其对应的内存空间
即对p指向的内存空间操作。
由以上可得:
p == &num
*p == num == *(&num);
Int **pp = &p;
即:num = *p = **pp = *(&num);
&num = p = *pp;
num = *p = **pp = ***ppp = *(&num);
&num = p = *pp = **ppp