C++基础(8)C/C++ 中的运算符

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第8篇文章,点击查看活动详情

运算符是任何编程语言的基础。我们可以将运算符定义为帮助我们对操作数执行特定数学和逻辑计算的符号。换句话说,我们可以说操作符对操作数进行操作。例如,'+' 是用于加法的运算符,如下所示:  

c = a + b;
复制代码

这里,“+”是称为加法运算符的运算符,“a”和“b”是操作数。加法运算符告诉编译器将两个操作数“a”和“b”相加。 

如果不使用运算符,C/C++ 编程语言的功能是不完整的。

C/C++ 有很多内置的操作符,可以分为 6 种类型:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 赋值运算符
  6. 其他运算符

上面的算子已经详细讨论过了: 

1.算术运算符: 

这些运算符用于对操作数执行算术/数学运算。示例:(+、-、*、/、%、++、-)。算术运算符有两种类型: 

a) 一元运算符:操作或使用单个操作数的运算符是一元运算符。例如:递增 (++) 和递减 (–) 运算符

int val = 5;
++val;  // 6
复制代码

b) 二元运算符:操作或使用两个操作数的运算符是二元运算符。例如:加法(+)、减法(-)、乘法(*)、除法(/)运算符

int a = 7;
int b = 2;
cout<<a+b; // 9
复制代码

2.关系运算符:

扫描二维码关注公众号,回复: 14514626 查看本文章

这些用于比较两个操作数的值。例如,检查一个操作数是否等于另一个操作数,一个操作数是否大于另一个操作数等。一些关系运算符是 (==, >= , <= )。

int a = 3;
int b = 5;
a < b;
// 运算符检查 a 是否小于 b
复制代码

3. 逻辑运算符:

逻辑运算符用于组合两个或多个条件/约束或补充考虑的原始条件的评估。逻辑运算符的运算结果是布尔值truefalse。 

例如,当两个条件都满足时,在 C 或 C++ 中表示为“&&”运算符的逻辑与返回 true。 否则,它返回 false。因此,当 a 和 b 都为真(即非零)时,a && b 返回真(更多参考请参阅本文)。****

(4 != 5) && (4 < 5);     // true
复制代码

4.位运算符: 

位运算符用于对操作数执行位级操作。运算符首先转换为位级,然后对操作数执行计算。诸如加法、减法、乘法等数学运算可以在位级别执行以加快处理速度。例如,在 C 或 C++ 中表示为& 运算符的按位 AND将两个数字作为操作数,并对两个数字的每一位进行 AND。仅当两个位都为 1 时,AND 的结果才为 1。(有关更多参考,请参阅本文)。****

int a = 5, b = 9;   // a = 5(00000101), b = 9(00001001)
cout << (a ^ b);   //  00001100
cout <<(~a);       // 11111010
复制代码

5.赋值运算符: 

赋值运算符用于为变量赋值。赋值运算符的左侧操作数是一个变量,而赋值运算符的右侧操作数是一个值。右侧的值必须与左侧的变量具有相同的数据类型,否则编译器将引发错误。 

不同类型的赋值运算符如下所示 
:“=”: 这是最简单的赋值运算符。该运算符用于将右侧的值赋给左侧的变量。 
例如: 

a = 10; 
b = 20; 
ch ='y';
复制代码

湾。“+=” :该运算符是 '+' 和 '=' 运算符的组合。该运算符首先将左侧变量的当前值与右侧的值相加,然后将结果赋给左侧的变量。 
例如:

(a += b) 可以写成 (a = a + b)
如果最初存储在 a 中的值为 5。那么 (a += 6) = 11复制代码

C。“-=” :此运算符是 '-' 和 '=' 运算符的组合。该运算符首先从左侧变量的当前值中减去右侧的值,然后将结果分配给左侧的变量。 
例如: 

(a -= b) 可以写成 (a = a - b)
如果最初存储在 a 中的值是 8。那么 (a -= 6) = 2复制代码

d。“*=” :此运算符是 '*' 和 '=' 运算符的组合。该运算符首先将左侧变量的当前值乘以右侧的值,然后将结果分配给左侧的变量。 
例如: 

(a *= b) 可以写成 (a = a * b)
如果最初存储在 a 中的值为 5。那么 (a *= 6) = 30复制代码

e. “/=” :此运算符是 '/' 和 '=' 运算符的组合。该运算符首先将左侧变量的当前值除以右侧的值,然后将结果分配给左侧的变量。 
例如:

(a /= b) 可以写成 (a = a / b)
如果最初,存储在 a 中的值为 6。那么 (a /= 2) = 3复制代码

6. 其他运营商: 

除了上述运算符外,C 或 C++ 中还有一些其他运算符可用于执行某些特定任务。其中一些在这里讨论: 

sizeof 运算符: 

  • sizeof 在 C/C++ 编程语言中被广泛使用。
  • 它是一个编译时一元运算符,可用于计算其操作数的大小。
  • sizeof 的结果是无符号整数类型,通常用 size_t 表示。
  • 基本上,sizeof 运算符用于计算变量的大小。(参考这篇文章)

逗号运算符: 

  • 逗号运算符(由标记表示)是一个二元运算符,它计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。
  • 逗号运算符的优先级是所有 C 运算符中最低的。
  • 逗号既充当运算符又充当分隔符。(参考这篇文章)

条件运算符: 

  • 条件运算符的格式为Expression1? 表达式 2:表达式 3
  • 这里,Expression1 是要评估的条件。如果条件(Expression1)为,那么我们将执行并返回表达式2的结果,否则如果条件(表达式1)为,那么我们将执行并返回表达式3的结果。
  • 我们可以用条件运算符替换 if..else 语句的使用。

点 (.)和箭头 (->)运算符:

  • 成员运算符用于引用类、结构和联合的各个成员。
  • 点运算符应用于实际对象。
  • 箭头运算符与指向对象的指针一起使用。

Cast 运算符:

  • 转换运算符将一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。

  • 强制转换是一种特殊运算符,它强制将一种数据类型转换为另一种数据类型。 

  • 大多数 C++ 编译器支持的最通用转换如下 -    [ (type) expression ]&,* 运算符:

  • 指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。

  • 指针运算符 * 是指向变量的指针。例如 *var; 将指向一个变量 var。

下面是上述操作符的实现:

// C++ 中的运算符
#include<iostream>
using namespace std;

int main(){
 int a=10, b=5;
 // 算术运算符
 cout<<"以下是 C++ 中的算术运算符"<<endl;
 cout<<"The value of a + b is "<<a+b<<endl;
 cout<<"The value of a - b is "<<a-b<<endl;
 cout<<"The value of a * b is "<<a*b<<endl;
 cout<<"The value of a / b is "<<a/b<<endl;
 cout<<"The value of a % b is "<<a%b<<endl;
 cout<<"The value of a++ is "<<a++<<endl; // 首先打印 (a) 然后将其增加 1
 cout<<"The value of a-- is "<<a--<<endl; // 先打印 (a+1) 然后减 1
 cout<<"The value of ++a is "<<++a<<endl; // 将 (a) 增加 (a+1) 然后打印
 cout<<"The value of --a is "<<--a<<endl; // 将 (a+1) 减 (a) 然后打印
 cout<<endl;

 // 赋值运算符 --> 用于给变量赋值
 // int a =3, b=9;
 // char d='d';

 // 比较运算符 
 // 所有这些比较运算符的输出将为 (1) 如果为真,则为 (0) 如果为假
 cout<<"以下是 C++ 中的比较运算符"<<endl;
 cout<<"a == b 的值是 "<<(a==b)<<endl;
 cout<<"The value of a != b is "<<(a!=b)<<endl;
 cout<<"The value of a >= b is "<<(a>=b)<<endl;
 cout<<"The value of a <= b is "<<(a<=b)<<endl;
 cout<<"The value of a > b is "<<(a>b)<<endl;
 cout<<"The value of a < b is "<<(a<b)<<endl;
 cout<<endl;
 // 逻辑运算符
 cout<<"以下是 C++ 中的逻辑运算符"<<endl;
 cout<<"The value of this logical and operator ((a==b) && (a<b)) is:"<<((a==b) && (a<b))<<endl;
 cout<<"The value of this logical or operator ((a==b) || (a<b)) is:"<<((a==b) || (a<b))<<endl;
 cout<<"The value of this logical not operator (!(a==b)) is:"<<(!(a==b))<<endl;


 return 0;
}
复制代码

输出

以下是 C++ 中的算术运算符
The value of a + b is 15
The value of a - b is 5
The value of a * b is 50
The value of a / b is 2
The value of a % b is 0
The value of a++ is 10
The value of a-- is 11
The value of ++a is 11
The value of --a is 10

以下是 C++ 中的比较运算符
The value of a == b is 0
The value of a != b is 1
The value of a >= b is 1
The value of a <= b is 0
The value of a > b is 1
The value of a < b is 0

以下是 C++ 中的逻辑运算符
The value of this logical and operator ((a==b) && (a<b)) is:0
The value of this logical or operator ((a==b) || (a<b)) is:0
The value of this logical not operator (!(a==b)) is:1
复制代码

猜你喜欢

转载自juejin.im/post/7142782683884552199