{ }
C++运算符知识大全
编程小白必备 – 用大白话解释所有C++运算符,附代码示例
算术运算符
+ 加法运算符
就像数学里的加法,把两个数加在一起。例如:3 + 5 等于 8。
int a = 10 + 5; // a的值是15
– 减法运算符
就像数学里的减法,计算两个数的差。例如:10 – 3 等于 7。
int b = 20 – 8; // b的值是12
* 乘法运算符
就像数学里的乘法,计算两个数的乘积。例如:4 * 6 等于 24。
int c = 5 * 6; // c的值是30
/ 除法运算符
就像数学里的除法,计算两个数的商。注意:整数除法会舍去小数部分。
int d = 15 / 4; // d的值是3(整数除法)
double e = 15.0 / 4; // e的值是3.75
% 取模运算符
计算两个数相除后的余数。例如:10 % 3 等于 1(因为10除以3得3余1)。
int f = 10 % 3; // f的值是1
关系运算符
== 等于运算符
比较两个值是否相等。注意:是两个等号,不是一个(一个等号是赋值)。
bool result = (5 == 5); // result的值是true
!= 不等于运算符
比较两个值是否不相等。例如:5 != 3 的结果是 true。
bool result = (5 != 3); // result的值是true
> 大于运算符
检查左边的值是否大于右边的值。例如:10 > 5 的结果是 true。
bool result = (10 > 5); // result的值是true
< 小于运算符
检查左边的值是否小于右边的值。例如:3 < 8 的结果是 true。
bool result = (3 < 8); // result的值是true
>= 大于等于运算符
检查左边的值是否大于或等于右边的值。例如:5 >= 5 的结果是 true。
bool result = (5 >= 5); // result的值是true
<= 小于等于运算符
检查左边的值是否小于或等于右边的值。例如:4 <= 5 的结果是 true。
bool result = (4 <= 5); // result的值是true
逻辑运算符
&& 逻辑与运算符
当两边的条件都为真时,结果才为真。类似”而且”的意思。
bool result = (5 > 3) && (10 < 20); // result为true
|| 逻辑或运算符
当两边条件有一个为真时,结果就为真。类似”或者”的意思。
bool result = (5 > 10) || (8 < 9); // result为true
! 逻辑非运算符
把真变成假,把假变成真。类似”不是”的意思。
bool result = !(5 == 3); // result为true(因为5不等于3)
位运算符
& 按位与
对两个数的二进制位逐位比较,当两个位都是1时结果位才是1。
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int c = a & b; // 结果: 0001 (十进制1)
| 按位或
对两个数的二进制位逐位比较,当两个位中有一个是1时结果位就是1。
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int c = a | b; // 结果: 0111 (十进制7)
^ 按位异或
对两个数的二进制位逐位比较,当两个位不同时结果位才是1。
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int c = a ^ b; // 结果: 0110 (十进制6)
<< 左移运算符
将二进制位向左移动指定位数,右边补0。每左移一位相当于乘以2。
int a = 5; // 二进制: 0101
int b = a << 1; // 结果: 1010 (十进制10)
>> 右移运算符
将二进制位向右移动指定位数,左边补0。每右移一位相当于除以2。
int a = 10; // 二进制: 1010
int b = a >> 1; // 结果: 0101 (十进制5)
赋值运算符
= 基本赋值运算符
把右边的值赋给左边的变量。注意不要和等于运算符(==)混淆。
int a = 10; // 把10赋值给变量a
+= 加后赋值
把左边的变量加上右边的值,再把结果赋给左边的变量。
int a = 5;
a += 3; // 等同于 a = a + 3; 现在a的值是8
-= 减后赋值
把左边的变量减去右边的值,再把结果赋给左边的变量。
int a = 10;
a -= 4; // 等同于 a = a – 4; 现在a的值是6
*= 乘后赋值
把左边的变量乘以右边的值,再把结果赋给左边的变量。
int a = 5;
a *= 3; // 等同于 a = a * 3; 现在a的值是15
/= 除后赋值
把左边的变量除以右边的值,再把结果赋给左边的变量。
int a = 15;
a /= 3; // 等同于 a = a / 3; 现在a的值是5
其他运算符
?: 条件运算符
唯一的三元运算符,类似简单的if-else语句。
int a = 10, b = 20;
int max = (a > b) ? a : b;
// 如果a>b,max等于a,否则等于b
++ 自增运算符
把变量的值增加1。分为前置(++i)和后置(i++)两种形式。
int i = 5;
i++; // 现在i的值是6
++i; // 现在i的值是7
— 自减运算符
把变量的值减少1。分为前置(–i)和后置(i–)两种形式。
int i = 10;
i–; // 现在i的值是9
–i; // 现在i的值是8
, 逗号运算符
依次执行多个表达式,但返回最后一个表达式的值。
int a = (5, 10, 15); // a的值是15
sizeof 大小运算符
返回变量或类型所占的字节大小。
int size = sizeof(int); // 通常返回4(字节)
给编程小白的贴心提示
1. 运算符优先级
运算符有计算顺序,就像数学里的先乘除后加减:
- 括号()优先级最高
- 然后是算术运算符(* / % 高于 + -)
- 接着是比较运算符(> < >= <=)
- 最后是逻辑运算符(&& ||)
2. 常见错误
- 混淆 = (赋值) 和 == (比较)
- 整数除法忘记小数部分:5/2=2 而不是2.5
- 自增自减运算符在表达式中的使用
- 运算符优先级导致的意外结果
3. 最佳实践
- 多用括号明确计算顺序
- 复杂的表达式拆分成多行
- 避免在表达式中使用自增自减运算符
- 使用空格增加可读性:a = b + c * d;
4. 记忆技巧
- 赋值运算符:等号右边给左边
- 比较相等:两个等号(==)才比较
- 自增自减:++加1,–减1
- 逻辑运算符:&&是而且,||是或者