算术运算符
+ (加法): 用于两个数值的相加。
- (减法): 用于两个数值的相减,或表示负数。
* (乘法): 用于两个数值的相乘。
/ (除法): 用于两个数值的相除。
% (取模): 用于求两个整数相除的余数。
关系运算符
== (等于): 检查两个表达式的值是否相等。
!= (不等于): 检查两个表达式的值是否不相等。
> (大于): 检查左操作数是否大于右操作数。
< (小于): 检查左操作数是否小于右操作数。
>= (大于等于): 检查左操作数是否大于或等于右操作数。
<= (小于等于): 检查左操作数是否小于或等于右操作数。
逻辑运算符
&& (逻辑与): 如果两个操作数都为真,则结果为真。
|| (逻辑或): 如果两个操作数中至少有一个为真,则结果为真。
! (逻辑非): 反转操作数的逻辑状态,如果操作数为真,则结果为假;如果操作数为假,则结果为真。
位运算符
& (按位与 Bitwise AND)
描述:对两个整数的二进制表示进行按位与操作。只有当两个相应的位都为1时,结果位才为1,否则为0。
示例:5 & 3(二进制表示为101 & 011)的结果是1(二进制表示为001),因为只有最低位两个数都为1。
| (按位或 Bitwise OR)
描述:对两个整数的二进制表示进行按位或操作。如果两个相应的位中至少有一个为1,结果位就为1。
示例:5 | 3(二进制表示为101 | 011)的结果是7(二进制表示为111),因为每一位至少有一个数为1。
^ (按位异或 Bitwise XOR)
描述:对两个整数的二进制表示进行按位异或操作。如果两个相应的位值相同,则结果位为0;如果不同,则结果位为1。
示例:5 ^ 3(二进制表示为101 ^ 011)的结果是4(二进制表示为100),因为只有最低位两个数的值不同。
~ (按位取反 Bitwise NOT)
描述:对整数的二进制表示进行按位取反操作。将所有的1变为0,所有的0变为1。
示例:~5(二进制表示为~101)的结果是-6(二进制表示为-110),因为在二进制中,-6的补码是1010,取反后得到0101,即5的按位取反。
<< (左移 Left Shift)
描述:将左操作数的二进制表示向左移动指定的位数(右操作数指定的位数)。右边移出的位置用0填充。
示例:6 << 2(二进制表示为110 << 2)的结果是72(二进制表示为11000),因为6的二进制表示向左移动两位相当于乘以2^2。
>> (右移 Right Shift)
描述:将左操作数的二进制表示向右移动指定的位数(右操作数指定的位数)。对于无符号数,左边填充0;对于有符号数,根据符号位进行符号扩展。
示例:7 >> 2(二进制表示为111 >> 2)的结果是1(二进制表示为001),因为7的二进制表示向右移动两位相当于除以2^2。
赋值运算符
= (简单赋值):
将右操作数的值赋给左操作数。
+= (加后赋值): 左操作数与右操作数相加,然后将结果赋值给左操作数。
-= (减后赋值): 左操作数与右操作数相减,然后将结果赋值给左操作数。
*= (乘后赋值): 左操作数与右操作数相乘,然后将结果赋值给左操作数。
/= (除后赋值): 左操作数除以右操作数,然后将结果赋值给左操作数。
%= (取模后赋值): 左操作数与右操作数取模,然后将结果赋值给左操作数。
&= (按位与后赋值): 左操作数与右操作数按位与,然后将结果赋值给左操作数。
|= (按位或后赋值): 左操作数与右操作数按位或,然后将结果赋值给左操作数。
^= (按位异或后赋值): 左操作数与右操作数按位异或,然后将结果赋值给左操作数。
<<= (左移后赋值): 左操作数左移右操作数指定的位数,然后将结果赋值给左操作数。
>>= (右移后赋值): 左操作数右移右操作数指定的位数,然后将结果赋值给左操作数。
其他运算符
sizeof: 返回某个类型或变量的大小(以字节为单位)。
:: (作用域解析运算符): 用于指定类或命名空间的作用域。
-> (指针访问运算符): 用于访问指针指向的对象的成员。
. (成员访问运算符): 用于访问对象的成员。
++ (递增): 增加操作数的值,可以作为前缀或后缀。
-- (递减): 减少操作数的值,可以作为前缀或后缀。
? : (条件运算符): 也称为三元运算符,用于基于条件表达式的结果选择两个值中的一个。
(), (函数调用): 用于调用函数。
[] (下标运算符): 用于访问数组或容器的元素。