在 C++ 里,运算符属于基础组成部分,用于操作变量与值。以下为你详细介绍各类运算符:
1. 算术运算符
这类运算符用于执行基本算术操作,常见的有:
cpp
#include <iostream>
int main() {
int a = 10, b = 3;
std::cout << "加法: " << a + b << std::endl;
std::cout << "减法: " << a - b << std::endl;
std::cout << "乘法: " << a * b << std::endl;
std::cout << "除法: " << a / b << std::endl;
std::cout << "取模: " << a % b << std::endl;
return 0;
}
在上述代码中:
+用于加法运算。-用于减法运算。*用于乘法运算。/用于除法运算,若操作数为整数,结果会取整。%用于取模运算,即求余数。
2. 赋值运算符
其作用是把值赋给变量,常见赋值运算符如下:
cpp
#include <iostream>
int main() {
int a = 5;
a += 3; // 等同于 a = a + 3
std::cout << "a += 3 后的值: " << a << std::endl;
a -= 2; // 等同于 a = a - 2
std::cout << "a -= 2 后的值: " << a << std::endl;
a *= 4; // 等同于 a = a * 4
std::cout << "a *= 4 后的值: " << a << std::endl;
a /= 2; // 等同于 a = a / 2
std::cout << "a /= 2 后的值: " << a << std::endl;
a %= 3; // 等同于 a = a % 3
std::cout << "a %= 3 后的值: " << a << std::endl;
return 0;
}
这里的+=、-=、*=、/=、%= 都是复合赋值运算符,能让代码更简洁。
3. 比较运算符
用于比较两个值,返回布尔类型(true 或 false)的结果:
cpp
#include <iostream>
int main() {
int a = 5, b = 3;
std::cout << "a > b: " << (a > b) << std::endl;
std::cout << "a < b: " << (a < b) << std::endl;
std::cout << "a >= b: " << (a >= b) << std::endl;
std::cout << "a <= b: " << (a <= b) << std::endl;
std::cout << "a == b: " << (a == b) << std::endl;
std::cout << "a != b: " << (a != b) << std::endl;
return 0;
}
其中:
>检查左边的值是否大于右边的值。<检查左边的值是否小于右边的值。>=检查左边的值是否大于或等于右边的值。<=检查左边的值是否小于或等于右边的值。==检查两个值是否相等。!=检查两个值是否不相等。
4. 逻辑运算符
用于组合多个条件,结果为布尔类型:
cpp
#include <iostream>
int main() {
bool x = true, y = false;
std::cout << "x && y: " << (x && y) << std::endl;
std::cout << "x || y: " << (x || y) << std::endl;
std::cout << "!x: " << (!x) << std::endl;
return 0;
}
具体而言:
&&是逻辑与运算符,只有当两个操作数都为true时,结果才为true。||是逻辑或运算符,只要有一个操作数为true,结果就为true。!是逻辑非运算符,对操作数取反。
5. 位运算符
针对二进制位进行操作:
cpp
#include <iostream>
int main() {
int a = 5, b = 3;
std::cout << "按位与: " << (a & b) << std::endl;
std::cout << "按位或: " << (a | b) << std::endl;
std::cout << "按位异或: " << (a ^ b) << std::endl;
std::cout << "按位取反: " << (~a) << std::endl;
std::cout << "左移: " << (a << 1) << std::endl;
std::cout << "右移: " << (a >> 1) << std::endl;
return 0;
}
这里:
&是按位与运算符,对两个操作数的对应位进行与运算。|是按位或运算符,对两个操作数的对应位进行或运算。^是按位异或运算符,对两个操作数的对应位进行异或运算。~是按位取反运算符,对操作数的每一位取反。<<是左移运算符,将操作数的二进制位向左移动指定的位数。>>是右移运算符,将操作数的二进制位向右移动指定的位数。
6. 递增和递减运算符
用于对变量的值进行递增或递减操作:
cpp
#include <iostream>
int main() {
int a = 5;
std::cout << "前置递增: " << ++a << std::endl;
std::cout << "后置递增: " << a++ << std::endl;
std::cout << "递增后的值: " << a << std::endl;
std::cout << "前置递减: " << --a << std::endl;
std::cout << "后置递减: " << a-- << std::endl;
std::cout << "递减后的值: " << a << std::endl;
return 0;
}
其中:
++是递增运算符,++a是前置递增,先增加a的值再使用;a++是后置递增,先使用a的值再增加。--是递减运算符,--a是前置递减,先减少a的值再使用;a--是后置递减,先使用a的值再减少。
7. 条件运算符(三元运算符)
这是 C++ 里唯一的三元运算符,可根据条件选择不同的值:
cpp
#include <iostream>
int main() {
int a = 5, b = 3;
int max = (a > b) ? a : b;
std::cout << "最大值: " << max << std::endl;
return 0;
}
(条件) ? 值1 : 值2 这种形式,如果条件为 true,则返回值 1;否则返回值 2。
2万+

被折叠的 条评论
为什么被折叠?



