Operatori dentro C++ con Esempio: Cos'è, Tipi e Programmi

Che cosa sono Operatori?

Un operatore è un simbolo utilizzato per eseguire operazioni sugli operandi. Un operatore opera sugli operandi. Le operazioni possono essere matematiche o logiche. Ci sono diversi tipi di operatori in C++ per eseguire diverse operazioni.

Consideriamo la seguente operazione:

a = x + y;

Nell'istruzione precedente, x e y sono gli operandi mentre + è un operatore di addizione. Quando il C++ il compilatore incontra l'istruzione precedente, aggiungerà xey e memorizzerà il risultato nella variabile a.

Tipi di Operatori dentro C++

Ci sono principalmente 6 diversi tipi di operatori in C++

  1. Aritmetica OperaTors
  2. Relazionale OperaTors
  3. logico OperaTors
  4. bitwise OperaTors
  5. Assegnazione OperaTors
  6. Altri OperaTors

Aritmetica OperaTors

Sono i tipi di operatori utilizzati per eseguire operazioni matematiche/aritmetiche. Loro includono:

Operator RICHEDI PREVENTIVO
+ operatore di addizione Aggiunge agli operandi.
– operatore di sottrazione Sottrae 2nd operando da 1st operando.
*operatore di moltiplicazione Moltiplica 2 operandi.
/operatore di divisione. Divide numeratore per denominatore.
Operatore modulo % Restituisce il resto dopo la divisione.
++ operatore di incremento Incrementa un valore intero di 1.
— operatore di decremento. Diminuisce un valore intero di 1.

Per esempio:

#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;
}

Produzione:

Aritmetica OperaTors

Ecco uno screenshot del codice:

Aritmetica OperaTors

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Dichiarare una variabile intera a e inizializzarla su 11.
  5. Dichiarare una variabile intera b e inizializzarla a 5.
  6. Dichiarare una variabile intera c.
  7. Stampa del valore dell'operazione a+b insieme ad altro testo sulla console.
  8. Stampa del valore dell'operazione ab accanto ad altro testo sulla console.
  9. Stampa del valore dell'operazione a*b insieme ad altro testo sulla console.
  10. Stampa del valore dell'operazione a/b insieme ad altro testo sulla console.
  11. Stampa del valore dell'operazione a%b insieme ad altro testo sulla console.
  12. Stampa del valore dell'operazione a++ insieme ad altro testo sulla console.
  13. Stampa del valore dell'operazione a– accanto ad altro testo sulla console.
  14. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  15. Fine del corpo della funzione main().

Relazionale OperaTors

Questi tipi di operatori eseguono confronti sugli operandi. Ad esempio, potrebbe essere necessario sapere quale operando è maggiore dell'altro o minore dell'altro. Loro includono:

Operator RICHEDI PREVENTIVO
== uguale all'operatore. Verifica l'uguaglianza dei valori di due operandi.
!= diverso dall'operatore Verifica l'uguaglianza dei valori di due operandi.
> ottimo che operatore Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro.
<meno dell'operatore. Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro.
>= operatore maggiore o uguale a Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro.
<= operatore minore o uguale a. Controlla se il valore dell'operando sinistro è inferiore o uguale al valore dell'operando destro.

Per esempio:

#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;
}

Produzione:

Relazionale OperaTors

Ecco uno screenshot del codice:

Relazionale OperaTors

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Dichiarare una variabile intera a e inizializzarla su 11.
  5. Dichiarare una variabile intera b e inizializzarla a 5.
  6. Stampare del testo sulla console indicando i valori delle variabili a e b.
  7. Eseguendo l'operazione aritmetica, a==b in un'istruzione decisionale if per sapere se è vera o falsa. Il { segna l'inizio del corpo dell'istruzione if.
  8. Testo da stampare sulla console se l'operazione a==b è vera. L'endl è un C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione if.
  9. La parte altrimenti dell'istruzione if precedente. Indica cosa fare se l'operazione a==b è falsa.
  10. Testo da stampare sulla console se l'operazione a==b è falsa. L'endl è un C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione else.
  11. Eseguendo l'operazione aritmetica, a
  12. Testo da stampare sulla console se l'operazione è stata eseguita C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione if.
  13. La parte altrimenti dell'istruzione if precedente. Indica cosa fare se l'operazione a
  14. Testo da stampare sulla console se l'operazione è stata eseguita C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione else.
  15. Eseguire l'operazione aritmetica a>b in un'istruzione decisionale if per sapere se è vera o falsa. Il { segna l'inizio del corpo dell'istruzione if.
  16. Testo da stampare sulla console se l'operazione a>b è vera. L'endl è un C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione if.
  17. La parte altrimenti dell'istruzione if precedente. Indica cosa fare se l'operazione a>b è falsa.
  18. Testo da stampare sulla console se l'operazione a>b è falsa. L'endl è un C++ parola chiave per la riga finale. Spinge il cursore per avviare la stampa nella riga successiva. Il } segna la fine del corpo dell'istruzione else.
  19. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  20. Fine del corpo della funzione main().

logico OperaTors

operatori logici combinare due/più vincoli/condizioni. Gli operatori logici completano anche la valutazione della condizione originale in esame. Loro includono:

Operator RICHEDI PREVENTIVO
&& operatore AND logico. La condizione è vera se entrambi gli operandi non sono zero.
|| operatore logico OR. La condizione è vera se uno degli operandi è diverso da zero.
! operatore logico NOT. Inverte lo stato logico dell'operando. Se l'operando è vero, il ! l'operatore lo rende falso.

Per esempio:

#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;
}

Produzione:

logico OperaTors

Ecco uno screenshot del codice:

logico OperaTors

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma.
  4. Il segno { segna l'inizio del corpo della funzione main().
  5. Dichiarare 4 variabili intere a, b, c e d e assegnare loro valori diversi.
  6. Utilizzando l'operatore && (AND) all'interno dell'istruzione if. Unisce due condizioni, il valore di a è uguale al valore di b e il valore di a è maggiore del valore di b. La prima condizione è falsa, la seconda condizione è vera. False&&true è False, quindi il risultato di if è falso.
  7. Testo da stampare sulla console se l'istruzione if precedente è vera. Questa operazione non verrà eseguita.
  8. Parte da eseguire se l'istruzione if precedente è falsa.
  9. Testo da stampare sulla console se l'istruzione if è falsa. Questo verrà eseguito.
  10. Utilizzando || (OR) operatore all'interno di un'istruzione if. Unisce due condizioni, il valore di a è uguale al valore di b e il valore di a è maggiore del valore di b. La prima condizione è falsa, la seconda condizione è vera. Falso||vero è Vero, quindi il risultato di se è vero.
  11. Testo da stampare sulla console se l'istruzione if precedente è vera. Questo verrà eseguito.
  12. Parte da eseguire se l'istruzione if precedente è falsa.
  13. Testo da stampare sulla console se l'istruzione if è falsa. Questa operazione non verrà eseguita.
  14. Verifica se il valore della variabile è 0.
  15. Testo da stampare sulla console se l'istruzione if precedente è vera. Questa operazione non verrà eseguita.
  16. Parte da eseguire se l'istruzione if precedente è falsa.
  17. Testo da stampare sulla console se l'istruzione if è falsa. Questo verrà eseguito.
  18. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  19. Fine del corpo della funzione main().

bitwise OperaTors

Operatori bit per bit eseguire operazioni a livello di bit sugli operandi. Innanzitutto, gli operatori vengono convertiti a livello di bit, quindi le operazioni vengono eseguite sugli operandi. Quando le operazioni aritmetiche come addizione e sottrazione vengono eseguite a livello di bit, i risultati possono essere ottenuti più rapidamente. Loro includono:

Operator RICHEDI PREVENTIVO
& (AND bit a bit). Prende 2 numeri (operandi) e poi esegue AND su ogni bit di due numeri. Se entrambi sono 1, AND restituisce 1, altrimenti 0.
| (OR bit a bit) Prende 2 numeri (operandi) quindi esegue OR su ogni bit di due numeri. Restituisce 1 se uno dei bit è 1.
^ (XOR bit a bit) Prende 2 numeri (operandi) quindi esegue XOR su ogni bit di 2 numeri. Restituisce 1 se entrambi i bit sono diversi.
<< (shift a sinistra) Prende due numeri quindi sposta a sinistra i bit del primo operando. Il secondo operando determina i posti totali da spostare.
>> (shift a destra) Prende due numeri quindi sposta a destra i bit del primo operando. Il secondo operando determina il numero di posizioni da spostare.
~ (NOT bit a bit). Prende il numero quindi inverte tutti i suoi bit.
#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;
}

Produzione:

bitwise OperaTors

Ecco uno screenshot del codice:

bitwise OperaTors

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Dichiarare una variabile intera senza segno p e assegnargli un valore di 60, ovvero 0011 1100 in binario.
  5. Dichiarare una variabile intera senza segno q e assegnargli il valore 13, ovvero 0000 1101 in binario.
  6. Dichiarare una variabile intera z e inizializzarla su 0.
  7. Esecuzione dell'operazione & (AND) bit a bit sulle variabili p e q e memorizzazione del risultato nella variabile z.
  8. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  9. Esecuzione dell'operazione bit a bit | (OR) sulle variabili p e q e memorizzazione del risultato nella variabile z.
  10. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  11. Esecuzione dell'operazione bit a bit ^ (XOR) sulle variabili p e q e memorizzazione del risultato nella variabile z.
  12. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  13. Esecuzione dell'operazione bit a bit ~ (NOT) sulle variabili p e q e memorizzazione del risultato nella variabile z.
  14. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  15. Esecuzione dell'operazione di spostamento a sinistra sulla variabile p e memorizzazione del risultato nella variabile z.
  16. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  17. Esecuzione dell'operazione di spostamento a destra sulla variabile p e memorizzazione del risultato nella variabile z.
  18. Stampa del risultato dell'operazione precedente sulla console insieme ad altro testo.
  19. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  20. Fine del corpo della funzione main().

Assegnazione OperaTors

Operatori di assegnazione assegnare valori alle variabili. L'operando/variabile viene aggiunto al lato sinistro dell'operatore mentre il valore viene aggiunto al lato destro dell'operatore. La variabile e il valore devono appartenere allo stesso tipo di dati, altrimenti, il C++ il compilatore genererà un errore.
Per esempio:

x = 5;

Nell'esempio sopra, x è la variabile/operando, = è l'operatore di assegnazione mentre 5 è il valore. Ecco gli operatori di assegnazione più diffusi in C++:

Operator RICHEDI PREVENTIVO
= (operatore di assegnazione semplice) Assegna il valore a destra alla variabile a sinistra.
+= (Aggiungi operatore di assegnazione AND) Aggiunge il valore dell'operando di destra all'operando di sinistra, quindi assegna il risultato alla variabile a sinistra.
-= (Operatore di sottrazione AND di assegnazione) Sottrae il valore dell'operando di destra da quello di sinistra, quindi assegna il risultato alla variabile a sinistra.
*= (Operatore di assegnazione moltiplicazione AND) Moltiplica il valore dell'operando di sinistra per quello di destra, quindi assegna il risultato alla variabile a sinistra.
/= (Operatore di divisione AND assegnazione) Divide il valore dell'operando di sinistra per quello di destra, quindi assegna il risultato alla variabile a sinistra.

Per esempio:

#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;
}

Produzione:

Assegnazione OperaTors

Ecco uno screenshot del codice:

Assegnazione OperaTors

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma.
  4. Il segno { segna l'inizio del corpo della funzione main().
  5. Dichiarare una variabile intera x e assegnargli il valore 5.
  6. Stampa del valore della variabile x insieme ad altro testo sulla console. \n è un carattere di nuova riga. Sposta il cursore sulla riga successiva durante la stampa.
  7. Aggiungendo 5 al valore della variabile x e assegnando il risultato alla variabile x.
  8. Stampa del valore della variabile x sulla console insieme ad altro testo.
  9. Sottrarre 5 dal valore di x e assegnare il risultato alla variabile x.
  10. Stampa del valore della variabile x sulla console insieme ad altro testo.
  11. Moltiplicare il valore della variabile x per 5 e assegnare il risultato alla variabile x.
  12. Stampa del valore della variabile x sulla console insieme ad altro testo.
  13. Dividere il valore della variabile x per 5 e assegnare il risultato alla variabile x.
  14. Stampa del valore della variabile x sulla console insieme ad altro testo.
  15. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  16. Fine del corpo della funzione main().

Altri OperaTors

Altri OperaTors includere l'operatore sizeof, virgola Operator, condizionale Operator, e OperaPrecedenza dei tori.
Discutiamo di altri operatori supportati da C++:

dimensione dell'operatore

Questo operatore determina la dimensione di una variabile. Utilizzare l'operatore sizeof per determinare la dimensione di un tipo di dati.

Per esempio:

#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;
}

Produzione:

dimensione dell'operatore

Ecco uno screenshot del codice:

dimensione dell'operatore

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Determinare la dimensione del tipo di dati intero utilizzando l'operatore sizeof e stampandolo insieme ad altro testo sulla console.
  5. Determinare la dimensione del tipo di dati carattere utilizzando l'operatore sizeof e stamparlo insieme ad altro testo sulla console.
  6. Determinare la dimensione del tipo di dati float utilizzando l'operatore sizeof e stampandolo insieme ad altro testo sulla console.
  7. Determinare la dimensione del tipo di dati float utilizzando l'operatore sizeof e stampandolo insieme ad altro testo sulla console.
  8. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  9. Fine del corpo della funzione main().

Virgola Operator

operatore virgola (,) avvia l'esecuzione di una sequenza di operazioni. Esprime il primo operando e scarta il risultato. Successivamente, valuta il secondo operando e restituisce il valore e il tipo.

#include <iostream>
using namespace std;
int main() {
	int x, y;
	y = 100;
	x = (y++, y + 10, 99 + y);
	cout << x;
	return 0;
}

Produzione:

Virgola Operator

Ecco uno screenshot del codice:

Virgola Operator

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Dichiarare due variabili intere x e y.
  5. Assegnando alla variabile ya il valore 100.
  6. Incremento del valore di y e assegnazione del risultato alla variabile x. Inizia con y a 100, quindi lo incrementa a 101 (y++). Successivamente, y viene sommato a 10. Infine, y, sempre a 101, viene sommato a 99, ottenendo 200. x è ora 200.
  7. Stampa del valore della variabile x sulla console.
  8. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  9. Fine del corpo della funzione main().

Condizionale Operator

Questo operatore valuta una condizione e agisce in base all'esito della valutazione.

Sintassi:

Condition ? Expression2 : Expression3;

parametri:

  • La Condizione è la condizione che deve essere valutata.
  • Expression1 è l'espressione da eseguire se la condizione è vera.
  • Expression3 è l'espressione da eseguire se la condizione è falsa.

Per esempio:

#include <iostream>
using namespace std;
int main() {
	int a = 1, b;
	b = (a < 10) ? 2 : 5;
	cout << "value of b: " << b << endl;
	return 0;
}

Produzione:

Condizionale Operator

Ecco uno screenshot del codice:

Condizionale Operator

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
  4. Dichiararne due variabili intere aeb. Alla variabile a è stato assegnato il valore 1.
  5. Assegnazione del valore alla variabile b. Se la variabile a è minore di 10, a b verrà assegnato il valore 2, altrimenti, a b verrà assegnato il valore 5.
  6. Stampa del valore della variabile b sulla console insieme ad altro testo.
  7. La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
  8. Fine del corpo della funzione main().

OperaPrecedenza dei tori

Una singola operazione può avere più di un operatore. In tal caso, la precedenza degli operatori determina quello valutato per primo.

L'elenco seguente mostra la precedenza degli operatori in C++, con precedenza decrescente da sinistra a destra:

(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= , /=

Sintesi

  • OperaI simboli sono utilizzati per eseguire operazioni logiche e aritmetiche.
  • Gli operatori aritmetici ci aiutano a eseguire varie operazioni aritmetiche sugli operandi.
  • Gli operatori relazionali ci aiutano a eseguire varie operazioni di confronto sugli operandi.
  • Gli operatori logici ci aiutano a eseguire varie operazioni logiche sugli operandi.
  • Operatori bit per bit aiutarci a eseguire operazioni bit a bit sugli operandi.
  • Gli operatori di assegnazione ci aiutano a eseguire varie operazioni aritmetiche sugli operandi.
  • L'operatore sizeof restituisce la dimensione di una variabile o di un tipo di dati.
  • L'operatore virgola esegue una sequenza di operazioni.
  • L'operatore condizionale valuta una condizione e agisce in base al risultato.