Noções básicas de C++ (8) Operadores em C/C++

Eu me inscrevi para o Desafio da Fase 1 do Projeto Golden Stone - Divida o prêmio de 100.000, este é o meu 8º artigo, clique para ver os detalhes do evento

Os operadores são a base de qualquer linguagem de programação. Podemos definir operadores como símbolos que nos ajudam a realizar cálculos matemáticos e lógicos específicos em seus operandos. Em outras palavras, podemos dizer que os operadores operam em operandos. Por exemplo, '+' é o operador para adição da seguinte forma:  

c = a + b;
复制代码

Aqui, "+" é um operador chamado operador de adição e "a" e "b" são operandos. O operador de adição diz ao compilador para adicionar dois operandos "a" e "b". 

A funcionalidade da linguagem de programação C/C++ é incompleta sem o uso de operadores.

C/C++ tem muitos operadores embutidos, que podem ser divididos em 6 tipos:

  1. operadores aritméticos
  2. operador relacional
  3. Operadores lógicos
  4. operadores bit a bit
  5. operador de atribuição
  6. outros operadores

Os operadores acima foram discutidos em detalhes: 

1. Operadores aritméticos: 

Esses operadores são usados ​​para realizar operações aritméticas/matemáticas nos operandos. Exemplo: (+, -, *, /, %, ++, -). Existem dois tipos de operadores aritméticos: 

a) Operador Unário : Um operador que opera ou usa um único operando é um operador unário. Por exemplo: operadores de incremento (++) e decremento (–)

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

b) Operadores Binários : Um operador que opera ou usa dois operandos é um operador binário. Por exemplo: operadores de adição (+), subtração (-), multiplicação (*), divisão (/)

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

2. Operadores relacionais:

Estes são usados ​​para comparar os valores de dois operandos. Por exemplo, verificar se um operando é igual ao outro, se um é maior que o outro, etc. Alguns operadores relacionais são (==, >= , <= ).

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

3. Operadores lógicos:

Os operadores lógicos são usados ​​para combinar duas ou mais condições/restrições ou para complementar a avaliação das condições originais consideradas. O resultado de um operador lógico é o valor booleano true ou false

例如,当两个条件都满足时,在 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 运算符中最低的。
  • 逗号既充当运算符又充当分隔符。(参考这篇文章)

条件运算符: 

  • Os operadores condicionais estão no formato Expression1? expression2:expression3 .
  • Aqui, Expression1 é a condição a ser avaliada. Se a condição (Expressão1) for verdadeira , executaremos e retornaremos o resultado da expressão2, caso contrário, se a condição (expressão1) for falsa , executaremos e retornaremos o resultado da expressão3.
  • Podemos substituir o uso de instruções if..else por operadores condicionais.

Operadores de ponto (.) e seta (->):

  • Os operadores de membro são usados ​​para se referir a membros individuais de classes, estruturas e uniões.
  • O operador ponto é aplicado ao objeto real.
  • O operador de seta é usado com ponteiros para objetos.

Operador de elenco:

  • Os operadores de conversão convertem um tipo de dados em outro. Por exemplo, int(2.2000) retornará 2.

  • Um cast é um operador especial que força um tipo de dado a ser convertido em outro. 

  • As conversões mais comuns suportadas pela maioria dos compiladores C++ são as seguintes -    [ (type) expression ] . &, *operador:

  • O operador de ponteiro & retorna o endereço de uma variável. Por exemplo, &a; dará o endereço real da variável.

  • O operador de ponteiro * é um ponteiro para uma variável. Por exemplo *var; apontará para uma variável var.

Segue a implementação do operador acima:

// 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;
}
复制代码

resultado

以下是 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
复制代码

Acho que você gosta

Origin juejin.im/post/7142782683884552199
Recomendado
Clasificación