Operatori in C ++

Un operatore è un simbolo che dice al compilatore di eseguire manipolazioni matematiche o logiche specifiche. C ++ è ricco di operatori incorporati e fornisce i seguenti tipi di operatori:

  • Operatori aritmetici
  • Operatori relazionali
  • Operatori logici
  • Operatori bit per bit
  • Operatori di assegnazione
  • Operatori vari

Questo capitolo esaminerà uno per uno gli operatori aritmetici, relazionali, logici, bit per bit, di assegnazione e altri.

Operatori aritmetici

Sono disponibili i seguenti operatori aritmetici supportati dal linguaggio C ++:

Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -

Mostra esempi

Operatore Descrizione Esempio
+ Aggiunge due operandi A + B darà 30
- Sottrae il secondo operando dal primo A - B darà -10
* Moltiplica entrambi gli operandi A * B darà 200
/ Divide il numeratore per il de-numeratore B / A darà 2
% Operatore modulo e resto di dopo una divisione intera B% A darà 0
++ Operatore di incremento , aumenta il valore intero di uno A ++ darà 11
- Operatore di decremento , riduce il valore intero di uno A-- darà 9

Operatori relazionali

Sono disponibili i seguenti operatori relazionali supportati dal linguaggio C ++

Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -

Mostra esempi

Operatore Descrizione Esempio
== Controlla se i valori di due operandi sono uguali o meno, in caso affermativo la condizione diventa vera. (A == B) non è vero.
! = Controlla se i valori di due operandi sono uguali o meno, se i valori non sono uguali la condizione diventa vera. (A! = B) è vero.
> Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro, in caso affermativo la condizione diventa vera. (A> B) non è vero.
< Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro, in caso affermativo la condizione diventa vera. (A <B) è vero.
> = Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. (A> = B) non è vero.
<= Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. (A <= B) è vero.

Operatori logici

Sono disponibili i seguenti operatori logici supportati dal linguaggio C ++.

Supponiamo che la variabile A contenga 1 e la variabile B contenga 0, quindi -

Mostra esempi

Operatore Descrizione Esempio
&& Chiamato operatore AND logico. Se entrambi gli operandi sono diversi da zero, la condizione diventa vera. (A && B) è falso.
|| Chiamato Operatore OR logico. Se uno dei due operandi è diverso da zero, la condizione diventa vera. (A || B) è vero.
! Chiamato operatore NOT logico. Utilizzare per invertire lo stato logico del proprio operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa. ! (A && B) è vero.

Operatori bit per bit

L'operatore bit per bit lavora sui bit ed esegue operazioni bit per bit. Le tabelle di verità per &, | e ^ sono le seguenti:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Assumiamo se A = 60; e B = 13; ora in formato binario saranno i seguenti -

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Gli operatori bit per bit supportati dal linguaggio C ++ sono elencati nella tabella seguente. Supponiamo che la variabile A contenga 60 e la variabile B ne contenga 13, quindi -

Mostra esempi

Operatore Descrizione Esempio
& L'operatore AND binario copia un po 'nel risultato se esiste in entrambi gli operandi. (A e B) darà 12 che è 0000 1100
| L'operatore OR binario copia un bit se esiste in uno degli operandi. (A | B) darà 61 che è 0011 1101
^ L'operatore XOR binario copia il bit se è impostato in un operando ma non in entrambi. (A ^ B) darà 49 che è 0011 0001
~ Binary Ones Complement Operator è unario e ha l'effetto di "ribaltare" i bit. (~ A) darà -61 che è 1100 0011 in forma di complemento a 2 a causa di un numero binario con segno.
<< Operatore binario di spostamento sinistro. Il valore dell'operando sinistro viene spostato a sinistra del numero di bit specificato dall'operando destro. Un << 2 darà 240 che è 1111 0000
>> Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro. Un >> 2 darà 15 che è 0000 1111

Operatori di assegnazione

Sono disponibili i seguenti operatori di assegnazione supportati dal linguaggio C ++:

Mostra esempi

Operatore Descrizione Esempio
= Operatore di assegnazione semplice, Assegna i valori dagli operandi del lato destro all'operando del lato sinistro. C = A + B assegnerà il valore di A + B a C
+ = Aggiungi operatore di assegnazione AND, aggiunge l'operando destro all'operando sinistro e assegna il risultato all'operando sinistro. C + = A è equivalente a C = C + A
- = Sottrai l'operatore di assegnazione AND, sottrae l'operando destro dall'operando sinistro e assegna il risultato all'operando sinistro. C - = A è equivalente a C = C - A
* = Moltiplica AND operatore di assegnazione, moltiplica l'operando destro con l'operando sinistro e assegna il risultato all'operando sinistro. C * = A è equivalente a C = C * A
/ = Divide AND operatore di assegnazione, divide l'operando sinistro con l'operando destro e assegna il risultato all'operando sinistro. C / = A è equivalente a C = C / A
% = Modulo AND operatore di assegnazione, richiede il modulo utilizzando due operandi e assegna il risultato all'operando sinistro. C% = A è equivalente a C = C% A
<< = Shift sinistro AND operatore di assegnazione. C << = 2 è uguale a C = C << 2
>> = Spostamento a destra e operatore di assegnazione. C >> = 2 è uguale a C = C >> 2
& = Operatore di assegnazione AND bit per bit. C & = 2 è uguale a C = C & 2
^ = OR esclusivo bit per bit e operatore di assegnazione. C ^ = 2 è uguale a C = C ^ 2
| = OR bit per bit inclusivo e operatore di assegnazione. C | = 2 è uguale a C = C | 2

Operatori vari

La tabella seguente elenca alcuni altri operatori supportati da C ++.

Suor n Operatore e descrizione
1

sizeof

L'operatore sizeof restituisce la dimensione di una variabile. Ad esempio, sizeof (a), dove 'a' è intero e restituirà 4.

2

Condition ? X : Y

Operatore condizionale (?) . Se Condizione è vera, restituisce il valore di X altrimenti restituisce il valore di Y.

3

,

L'operatore virgola determina l'esecuzione di una sequenza di operazioni. Il valore dell'intera espressione virgola è il valore dell'ultima espressione dell'elenco separato da virgole.

4

. (dot) and -> (arrow)

Gli operatori membri vengono utilizzati per fare riferimento a singoli membri di classi, strutture e sindacati.

5

Cast

Gli operatori di casting convertono un tipo di dati in un altro. Ad esempio, int (2.2000) restituirà 2.

6

&

Operatore puntatore e restituisce l'indirizzo di una variabile. Ad esempio & a; fornirà l'indirizzo effettivo della variabile.

7

*

L'operatore puntatore * è un puntatore a una variabile. Ad esempio * var; punterà a una variabile var.

Precedenza degli operatori in C ++

La precedenza degli operatori determina il raggruppamento dei termini in un'espressione. Ciò influisce sul modo in cui viene valutata un'espressione. Alcuni operatori hanno la precedenza maggiore di altri; per esempio, l'operatore di moltiplicazione ha una precedenza maggiore dell'operatore di addizione -

Ad esempio x = 7 + 3 * 2; qui, x è assegnato 13, non 20 perché l'operatore * ha una precedenza maggiore di +, quindi viene prima moltiplicato per 3 * 2 e poi somma in 7.

Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in fondo. All'interno di un'espressione, verranno valutati per primi gli operatori con precedenza più alta.

Mostra esempi

Categoria  Operatore  Associatività 
Postfix  () [] ->. ++ - -   Da sinistra a destra 
Unario  + -! ~ ++ - - (tipo) * & sizeof  Da destra a sinistra 
Moltiplicativo   * /%  Da sinistra a destra 
Additivo   + -  Da sinistra a destra 
Cambio   << >>  Da sinistra a destra 
Relazionale   <<=>> =  Da sinistra a destra 
Uguaglianza   ==! =  Da sinistra a destra 
Bitwise AND  Da sinistra a destra 
Bitwise XOR  Da sinistra a destra 
OR bit per bit  Da sinistra a destra 
AND logico  &&  Da sinistra a destra 
OR logico  ||  Da sinistra a destra 
Condizionale  ?:  Da destra a sinistra 
Incarico  = + = - = * = / =% = >> = << = & = ^ = | =  Da destra a sinistra 
Virgola  Da sinistra a destra