Sommario:
Video: Nuovo Corso C++11 ITA 63: espressioni in dettaglio - associatività, sotto espressioni 2024
Le variabili e le costanti sono utili solo se è possibile utilizzarle per eseguire calcoli. Il termine espressione è in gergo C ++ per un calcolo. Hai già visto l'espressione più semplice:
int n; // dichiarazione n = 1; // espressione
I programmatori combinano variabili, costanti e operatori per creare espressioni. Un operatore esegue alcune operazioni aritmetiche sui suoi argomenti. La maggior parte degli operatori accetta due argomenti: questi sono chiamati operatori binari . Alcuni operatori accettano un singolo argomento: questi sono gli operatori unari .
Tutte le espressioni restituiscono un valore e un tipo.
Operatori binari
Un operatore binario è un operatore che accetta due argomenti. Se si può dire var1 op var2, op deve essere un operatore binario. Gli operatori binari più comuni sono le stesse semplici operazioni che hai imparato nella scuola elementare. Gli operatori binari comuni vengono visualizzati nella tabella.
Precedenza | Operatore | Significato |
---|---|---|
1 | - (unario) | Restituisce il negativo del suo argomento |
2 | ++ (unario) | Incremento |
2 | - (unario) | Decremento |
3 | * (binario) | Moltiplicazione |
3 | / (binario) > Divisione | 3 |
% (binario) | Modulo | 4 |
+ (binario) | Aggiunta | 4 |
- (binario) | Sottrazione | 5 |
=, * =,% =, + =, - = (speciale) | Tipi di assegnazione |
|
Moltiplicazione, divisione, addizione, sottrazione e modulo sono gli operatori utilizzati per eseguire l'aritmetica. Funzionano proprio come gli operatori aritmetici che hai appreso al liceo, con le seguenti considerazioni speciali:
-
Considera il seguente esempio: int n = 2; // dichiara una variabile int m = 2n; // questo genera un errore
L'espressione sopra non assegna
m il valore di 2 volte n . Invece, C ++ tenta di interpretare 2 n come nome di variabile. Poiché i nomi delle variabili non possono iniziare con una cifra, genera un errore durante la fase di creazione. Quello che intendeva il programmatore era:
int n = 2; int m = 2 * n; // questo è OK
La divisione intera getta via il resto.
-
Quindi, il seguente: int n = 13/7; // assegna il valore 1 a n
Quattordici divisi per 7 è 2. Tredici divisi per sette è 1.
L'operatore modulo restituisce il resto dopo la divisione
-
(potresti non ricordare modulo): int n = 13% 7; // imposta da n a 6
Quattordici moduli sette è zero. Tredici modulo sette è sei.
Svelamento delle espressioni composte
Una singola espressione può includere più operatori:
int n = 5 + 100 + 32;
Quando tutti gli operatori sono uguali, C ++ valuta l'espressione da sinistra a destra:
5 + 100 + 32 105 + 32 137
Quando diversi operatori sono combinati in una singola espressione, C ++ usa una proprietà chiamata
precedenza. La precedenza è l'ordine in cui gli operatori vengono valutati in un'espressione composta. Considera il seguente esempio: int n = 5 * 100 + 32;
Cosa viene prima, moltiplicazione o aggiunta? O questa espressione è semplicemente valutata da sinistra a destra? Riferisciti alla tabella, che ti dice che la moltiplicazione ha la precedenza di 3, che è superiore alla precedenza di addizione che è 4 (i valori più piccoli hanno precedenza più alta). In questo modo si verifica prima la moltiplicazione:
5 * 100 + 32 500 + 32 532
L'ordine delle operazioni viene annullato dalla precedenza degli operatori. Come puoi vedere
int n = 32 + 5 * 100;
genera lo stesso risultato:
32 + 5 * 100 32 + 500 532
Ma se si desidera veramente 5 volte la somma di 100 più 32? È possibile sovrascrivere la precedenza degli operatori avvolgendo le espressioni che si desidera eseguire prima tra parentesi, come segue:
int n = 5 * (100 + 32);
Ora l'aggiunta viene eseguita prima della moltiplicazione:
5 * (100 + 32) 5 * 132 660
È possibile combinare le parentesi per rendere le espressioni complesse come si desidera. C ++ inizia sempre con le parentesi nidificate più profonde che riesce a trovare e funziona.
(3 + 2) * ((100/20) + (50/5)) (3 + 2) * (5 + 10) 5 * 15 75
È sempre possibile dividere espressioni complicate utilizzando variabili intermedie. Quanto segue è più sicuro:
int factor = 3 + 2; int principal = (100/20) + (50/5); int total = factor * principal;
L'assegnazione di un nome ai valori intermedi consente inoltre al programmatore di spiegare le parti di un'equazione complessa, semplificando la comprensione del programmatore successivo.