C++ 中的运算符及示例:定义、类型和程序
什么是运算符?
运算符是用于对操作数执行运算的符号。运算符操作操作数。运算可以是算术运算或逻辑运算。C++中有不同类型的运算符用于执行不同的运算。
考虑以下操作
a = x + y;
在上面的语句中,x和y是操作数,而+是加法运算符。当C++编译器遇到上述语句时,它将把x和y相加,并将结果存储在变量a中。
C++中的运算符类型
C++中主要有6种不同类型的运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
它们是用于执行算术/算术运算的运算符类型。它们包括
| 运算符 | 描述 |
|---|---|
| + 加法运算符 | 将两个操作数相加。 |
| – 减法运算符 | 将第一个操作数减去第二个操作数。 |
| * 乘法运算符 | 将两个操作数相乘。 |
| / 除法运算符。 | 用分子除以分母。 |
| % 模运算符 | 返回除法后的余数。 |
| ++ 增量运算符 | 将整数值增加1。 |
| — 减量运算符。 | 将整数值减少1。 |
例如
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
int c;
cout << "a + b is :" << a+b << endl; //11+5
cout << "a - b is :" << a-b << endl; //11-5
cout << "a * b is :" << a*b << endl; //11*5
cout << "a / b is :" << a/b << endl; //11/5
cout << "a % b is :" << a%b << endl; //11%5
cout << "a++ is :" << a++ << endl; //11++
cout << "a-- is :" << a-- << endl; //12--
return 0;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 声明一个整数变量a并将其初始化为11。
- 声明一个整数变量b并将其初始化为5。
- 声明一个整数变量c。
- 在控制台上打印a+b运算值以及其他文本。
- 在控制台上打印a-b运算值以及其他文本。
- 在控制台上打印a*b运算值以及其他文本。
- 在控制台上打印a/b运算值以及其他文本。
- 在控制台上打印a%b运算值以及其他文本。
- 在控制台上打印a++运算值以及其他文本。
- 在控制台上打印a--运算值以及其他文本。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
关系运算符
这些类型的运算符用于对操作数进行比较。例如,您可能需要知道哪个操作数大于另一个,或者小于另一个。它们包括
| 运算符 | 描述 |
|---|---|
| == 等于运算符。 | 检查两个操作数的值是否相等。 |
| != 不等于运算符 | 检查两个操作数的值是否相等。 |
| > 大于运算符 | 检查左操作数的值是否大于右操作数的值。 |
| < < 小于运算符。 | 检查左操作数的值是否小于右操作数的值。 |
| >= 大于或等于运算符 | 检查左操作数的值是否大于或等于右操作数的值。 |
| <= 小于或等于运算符。 | 检查左操作数的值是否小于或等于右操作数的值。 |
例如
#include <iostream>
using namespace std;
int main() {
int a = 11;
int 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;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 声明一个整数变量a并将其初始化为11。
- 声明一个整数变量b并将其初始化为5。
- 在控制台上打印一些文本,说明变量a和b的值。
- 在if决策语句中执行算术运算a==b,以了解其为真还是为假。{ 标志着if语句体块的开始。
- 如果上述if语句为真,则在控制台上打印的文本。这不会被执行。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着if语句体块的结束。
- 上述if语句的else部分。它说明了如果a==b运算为假时该做什么。
- 如果上述if语句为假,则在控制台上打印的文本。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着else语句体块的结束。
- 在if决策语句中执行算术运算a
- 如果上述if语句为真,则在控制台上打印的文本。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着if语句体块的结束。
- 上述if语句的else部分。它说明了如果a
- 如果上述if语句为假,则在控制台上打印的文本。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着else语句体块的结束。
- 在if决策语句中执行算术运算a>b,以了解其为真还是为假。{ 标志着if语句体块的开始。
- 如果上述if语句为真,则在控制台上打印的文本。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着if语句体块的结束。
- 上述if语句的else部分。它说明了如果a>b运算为假时该做什么。
- 如果上述if语句为假,则在控制台上打印的文本。endl是C++中的换行关键字。它会将光标移到下一行开始打印。}标志着else语句体块的结束。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
逻辑运算符
逻辑运算符组合了两个或多个约束/条件。逻辑运算符还补充了对原始条件进行评估。它们包括
| 运算符 | 描述 |
|---|---|
| && 逻辑与运算符。 | 当两个操作数都不是零时,条件为真。 |
| || 逻辑或运算符。 | 当其中一个操作数为非零时,条件为真。 |
| ! 逻辑非运算符。 | 它反转操作数的逻辑状态。如果操作数为真,则!运算符将其变为假。 |
例如
#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;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。
- { 标记 main() 函数体的开始。
- 声明四个整数变量a、b、c和d,并为它们赋值。
- 在if语句中使用&&(AND)运算符。它连接了两个条件:a等于b,并且a大于b。第一个条件为假,第二个条件为真。False&&true为False,因此,if的结果为false。
- 如果上述if语句为真,则在控制台上打印的文本。这不会被执行。
- 如果上述if语句为假,则执行的部分。
- 如果if语句为假,则在控制台上打印的文本。这将执行。
- 在if语句中使用||(OR)运算符。它连接了两个条件:a等于b,并且a大于b。第一个条件为假,第二个条件为真。False||true为True,因此,if的结果为true。
- 如果上述if语句为真,则在控制台上打印的文本。这将执行。
- 如果上述if语句为假,则执行的部分。
- 如果if语句为假,则在控制台打印的文本。这不会被执行。
- 检查变量的值是否为0。
- 如果上述if语句为真,则在控制台上打印的文本。这不会被执行。
- 如果上述if语句为假,则执行的部分。
- 如果if语句为假,则在控制台上打印的文本。这将执行。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
位运算符
位运算符对操作数执行位级别运算。首先,运算符被转换为位级别,然后对操作数执行运算。当位级别的算术运算(如加法和减法)完成时,结果可以更快地获得。它们包括
| 运算符 | 描述 |
|---|---|
| & (按位与)。 | 它接受两个数字(操作数),然后对两个数字的每一位执行AND运算。如果两者都为1,则AND返回1,否则返回0。 |
| | (按位或) | 接受两个数字(操作数),然后对两个数字的每一位执行OR运算。如果其中一位为1,则返回1。 |
| ^ (按位异或) | 接受两个数字(操作数),然后对两个数字的每一位执行XOR运算。如果两位不同,则返回1。 |
| << (左移) | 接受两个数字,然后左移第一个操作数的位。第二个操作数决定移位的总位数。 |
| >> (右移) | 接受两个数字,然后右移第一个操作数的位。第二个操作数决定移位的位数。 |
| ~ (按位非)。 | 接受一个数字,然后反转其所有位。 |
#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 60 = 0011 1100
unsigned int q = 13; // 13 = 0000 1101
int z = 0;
z = p & q;
cout << "p&q is : " << z << endl; // 12 = 0000 1100
z = p | q;
cout << "p|q is : " << z << endl; // 61 = 0011 1101
z = p ^ q;
cout << "p^q is : " << z << endl; // 49 = 0011 0001
z = ~p;
cout << "~p is : " << z << endl; // -61 = 1100 0011
z = p << 2;
cout << "p<<2 is: " << z << endl; // 240 = 1111 0000
z = p >> 2;
cout << "p>>2 is : " << z << endl; // 15 = 0000 1111
return 0;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 声明一个无符号整数变量p,并为其赋值60,即二进制的0011 1100。
- 声明一个无符号整数变量q,并为其赋值13,即二进制的0000 1101。
- 声明一个整数变量z并将其初始化为0。
- 对变量p和q执行按位&(AND)运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 对变量p和q执行按位|(OR)运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 对变量p和q执行按位^(XOR)运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 对变量p和q执行按位~(NOT)运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 对变量p执行左移运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 对变量p执行右移运算,并将结果存储在变量z中。
- 在控制台上打印上述运算的结果以及其他文本。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
赋值运算符
赋值运算符将值赋给变量。操作数/变量添加到运算符的左侧,而值添加到运算符的右侧。变量和值必须属于同一数据类型,否则C++编译器将报错。
例如
x = 5;
在上面的示例中,x是变量/操作数,=是赋值运算符,而5是值。以下是C++中流行的赋值运算符
| 运算符 | 描述 |
|---|---|
| = (简单赋值运算符) | 将右侧的值赋给左侧的变量。 |
| += (加法并赋值运算符) | 将右操作数的值加到左操作数,然后将结果赋给左侧的变量。 |
| -= (减法并赋值运算符) | 将右操作数的值从左操作数中减去,然后将结果赋给左侧的变量。 |
| *= (乘法并赋值运算符) | 将左操作数的值与右操作数相乘,然后将结果赋给左侧的变量。 |
| /= (除法并赋值运算符) | 将左操作数的值除以右操作数,然后将结果赋给左侧的变量。 |
例如
#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;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。
- { 标记 main() 函数体的开始。
- 声明一个整数变量x并为其赋值5。
- 在控制台上打印变量x的值以及其他文本。\n是换行符。它在打印时将光标移到下一行。
- 将5加到变量x的值,并将结果赋给变量x。
- 在控制台上打印变量x的值以及其他文本。
- 将5从x的值中减去,并将结果赋给变量x。
- 在控制台上打印变量x的值以及其他文本。
- 将变量x的值乘以5,并将结果赋给变量x。
- 在控制台上打印变量x的值以及其他文本。
- 将变量x的值除以5,并将结果赋给变量x。
- 在控制台上打印变量x的值以及其他文本。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
其他运算符
其他运算符包括 sizeof 运算符、逗号运算符、条件运算符和运算符优先级。
让我们讨论C++支持的其他运算符
sizeof 运算符
此运算符确定变量的大小。使用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;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 使用sizeof运算符确定整数数据类型的大小,并在控制台上打印它以及其他文本。
- 使用sizeof运算符确定字符数据类型的大小,并在控制台上打印它以及其他文本。
- 使用sizeof运算符确定浮点数据类型的大小,并在控制台上打印它以及其他文本。
- 使用sizeof运算符确定浮点数据类型的大小,并在控制台上打印它以及其他文本。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
逗号运算符
逗号运算符(,)触发一系列操作的执行。它首先计算第一个操作数并丢弃结果。然后,它计算第二个操作数并返回其值和类型。
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 声明两个整数变量x和y。
- 将变量y赋值为100。
- 将y的值递增并将结果赋给变量x。它以y为100开始,然后将其递增到101(y++)。接下来,y加上10。最后,y(仍为101)加上99,得到200。x现在是200。
- 在控制台上打印变量x的值。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
条件运算符
此运算符根据评估结果来评估条件并采取相应行动。
语法
Condition ? Expression2 : Expression3;
参数
- Condition是要评估的条件。
- Expression1 是在条件为真时要执行的表达式。
- Expression3 是在条件为假时要执行的表达式。
例如
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
输出
这是代码的屏幕截图:
代码解释
- 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
- 包含 std 命名空间,以便使用其类和函数而无需调用它们。
- 调用 main() 函数,程序的逻辑应添加到其中。{ 标记 main() 函数体的开始。
- 声明两个整数变量a和b。变量a被赋值为1。
- 为变量b赋值。如果变量a小于10,则b被赋值为2;否则,b被赋值为5。
- 在控制台上打印变量b的值以及其他文本。
- 如果程序运行正常,main() 函数应返回一个值。
- main() 函数体结束。
运算符的优先级
一个操作可能包含多个运算符。在这种情况下,运算符优先级决定了哪个先被评估。
以下列表显示了C++中运算符的优先级,从左到右优先级递减
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
摘要
- 运算符是用于执行逻辑和算术运算的符号。
- 算术运算符帮助我们对操作数执行各种算术运算。
- 关系运算符帮助我们对操作数执行各种比较运算。
- 逻辑运算符帮助我们对操作数执行各种逻辑运算。
- 位运算符帮助我们对操作数执行位运算。
- 赋值运算符帮助我们对操作数执行各种算术运算。
- sizeof运算符返回变量或数据类型的大小。
- 逗号运算符执行一系列操作。
- 条件运算符根据结果评估条件并执行相应操作。













