C++ 运算符全解析:类型、示例与示例程序
什么是运算符?
在 C++ 中,运算符 是对一个或多个操作数执行操作的符号。运算符可分为算术、逻辑、关系、位运算、赋值等类别。
示例:
a = x + y;
此处 x 和 y 是操作数,+ 是加法运算符。编译器将 x 与 y 相加并将结果存入 a。
本教程你将学到:
- 运算符的概念
- C++ 运算符类型
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符(sizeof、逗号、条件、优先级)
C++ 运算符的六大类别
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
执行数学计算。
| 运算符 | 说明 |
|---|---|
| + | 两数相加 |
| - | 第一数减第二数 |
| * | 两数相乘 |
| / | 被除数除以除数 |
| % | 求除法余数 |
| ++ | 整数加 1 |
| -- | 整数减 1 |
示例程序:
#include <iostream>
using namespace std;
int main() {
int a = 11, b = 5, c;
cout << "a + b is :" << a+b << endl;
cout << "a - b is :" << a-b << endl;
cout << "a * b is :" << a*b << endl;
cout << "a / b is :" << a/b << endl;
cout << "a % b is :" << a%b << endl;
cout << "a++ is :" << a++ << endl;
cout << "a-- is :" << a-- << endl;
return 0;
}
输出:

代码解释略。
关系运算符
比较操作数并返回布尔结果。
| 运算符 | 说明 |
|---|---|
| == | 判等 |
| != | 判不等 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
示例程序:
#include <iostream>
using namespace std;
int main() {
int a = 11, b = 5;
cout << "a=11, b=5" << endl;
if (a == b) cout << "a == b is true" << endl;
else cout << "a == b is false" << endl;
if (a < b) cout << "a < b is true" << endl;
else cout << "a < b is false" << endl;
if (a > b) cout << "a > b is true" << endl;
else cout << "a > b is false" << endl;
return 0;
}
输出:

逻辑运算符
组合布尔表达式。
| 运算符 | 说明 |
|---|---|
| && | 逻辑与 – 两操作数均非零为真 |
| || | 逻辑或 – 至少一操作数非零为真 |
| ! | 逻辑非 – 取反布尔值 |
示例程序:
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d) cout << "a equals to b AND c is greater than d\n";
else cout << "AND operation returned false\n";
if (a == b || c > d) cout << "a equals to b OR c is greater than d\n";
else cout << "Neither a is equal to b nor c is greater than d\n";
if (!b) cout << "b is zero\n";
else cout << "b is not zero";
return 0;
}
输出:

位运算符
对整数值的单个位执行操作。
| 运算符 | 说明 |
|---|---|
| & | 按位与 – 两位均为 1 结果为 1 |
| | | 按位或 – 至少一位为 1 结果为 1 |
| ^ | 按位异或 – 两位不同结果为 1 |
| << | 左移 – 位左移,低位补 0 |
| >> | 右移 – 位右移,丢弃低位 |
| ~ | 按位非 – 翻转所有位 |
示例程序:
#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 0011 1100
unsigned int q = 13; // 0000 1101
int z = 0;
z = p & q; cout << "p&q is : " << z << endl; // 12
z = p | q; cout << "p|q is : " << z << endl; // 61
z = p ^ q; cout << "p^q is : " << z << endl; // 49
z = ~p; cout << "~p is : " << z << endl; // -61
z = p << 2; cout << "p<<2 is: " << z << endl; // 240
z = p >> 2; cout << "p>>2 is : " << z << endl; // 15
return 0;
}
输出:

赋值运算符
给变量赋值,常结合算术操作。
| 运算符 | 说明 |
|---|---|
| = | 简单赋值 |
| += | 加后赋值 |
| -= | 减后赋值 |
| *= | 乘后赋值 |
| /= | 除后赋值 |
示例程序:
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << "Initial value of x is " << x << "\n";
x += 5; cout << "x += 5 gives :" << x << "\n";
x -= 5; cout << "x -= 5 gives : " << x << "\n";
x *= 5; cout << "x *= 5 gives :" << x << "\n";
x /= 5; cout << "x /= 5 gives : " << x << "\n";
return 0;
}
输出:

其他运算符
sizeof 运算符
返回类型或对象的字节大小。
示例:
#include <iostream>
using namespace std;
int main() {
cout << "Size of int : " << sizeof(int) << "\n";
cout << "Size of char : " << sizeof(char) << "\n";
cout << "Size of float : " << sizeof(float) << "\n";
cout << "Size of double : " << sizeof(double) << "\n";
return 0;
}
输出:

逗号运算符
顺序执行多个表达式,返回最后一个表达式的值。
示例:
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
输出:

条件运算符
又称三元运算符,根据条件返回两个表达式之一。
语法:condition ? expr1 : expr2
示例:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
输出:

运算符优先级
单一表达式中出现多个运算符时,优先级规则决定求值顺序。从高到低:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
总结
- 运算符是 C++ 进行计算和逻辑判断的基础构件。
- 算术运算符处理基础数学。
- 关系运算符实现比较。
- 逻辑运算符支持布尔逻辑。
- 位运算符操作单个位。
- 赋值运算符存储值,常结合算术。
- sizeof 运算符揭示类型内存占用。
- 逗号运算符顺序执行表达式。
- 条件运算符提供简洁的内联决策。
C语言
- 快速成型详解:类型、工艺与优势
- 生物芯片:定义、类型与现代生物技术应用
- C#运算符——C#运算符全面指南
- 掌握 C++ 运算符:六大类型全解析与实战示例
- 掌握 C++ switch-case:语法、用法与实战示例
- C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
- C++ 运算符重载实战指南:语法、方法、限制与代码示例
- C++ 结构体详解:定义、初始化、指针、函数参数与局限性
- 掌握 C++ std::list:语法、函数与实战示例
- C++ Struct 与 Class 核心差异、语法及最佳实践
- C# 抽象类实战教程:从定义到派生的完整代码示例
- C++重载机制深度解析:函数重载与运算符重载全攻略