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:
- operadores aritméticos
- operador relacional
- Operadores lógicos
- operadores bit a bit
- operador de atribuição
- 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
复制代码