Questo articolo fornisce un tutorial completo per aiutarti a conoscere l'associazione e la precedenza dell'operatore in C.
Precedenza dell'operatore in C
Precedenza dell'operatore descrive la sequenza in cui vengono valutati diversi operatori durante la valutazione delle espressioni. Ad esempio, se un'espressione ha sia operatori di aggiunta che di moltiplicazione, che si dovrebbero essere valutati per primi? La risposta è semplice, C segue alcune regole per risolvere tale ambiguità, comunemente nota come Precedenza dell'operatore. In c, Precedenza dell'operatore è classificato in 17 livelli, che vanno dagli operatori unari all'operatore condizionale ternario. La maggior parte degli operatori usati come operatori aritmetici, operatori relazionali, operatori logici e operatori bitwise seguono lo standard C Precedenza dell'operatore protocollo.
Precedenza Le regole impongono quali operatori hanno una priorità più elevata rispetto ad altri durante la valutazione delle espressioni. Diversi tipi di operatori nel linguaggio di programmazione C hanno vari gradi di precedenza. Ad esempio, gli operatori unari hanno una priorità maggiore rispetto agli operatori binari. Quello che segue è un elenco di operatori ordinati in ordine crescente di precedenza:
Operatore | Significato dell'operatore | Associatività |
() [ -> . | Chiamata funzionale Riferimento elemento dell'array Selezione dei membri indiretti Selezione diretta dei membri | Da sinistra a destra |
! ~ + - ++ - E * taglia di (tipo) | Negazione logica Complemento bitwise (1) Unary Plus Unario meno Incremento Decremento Dereference (indirizzo) Riferimento del puntatore Restituisce la dimensione di un oggetto Typecast (conversione) | Da destra a sinistra |
* / % | Moltiplicare Dividere Resto | Da sinistra a destra |
+ - | Binary Plus (aggiunta) Binario meno (sottrazione) | Da sinistra a destra |
<< >> | Tasto maiuscolo di sinistra Shift destro | Da sinistra a destra |
< <= > > = | Meno di Meno o uguale Più grande di Maggiore o uguale | Da sinistra a destra |
== != | Uguale a Non uguale a | Da sinistra a destra |
E | Bitwise e | Da sinistra a destra |
^ | Bitwise esclusivo o | Da sinistra a destra |
| | Bitwise o | Da sinistra a destra |
&& | Logico e | Da sinistra a destra |
|| | Logico o | Da sinistra a destra |
?: | Operatore condizionale | Da destra a sinistra |
= *= /= %= += -= & = ^= | = <<= >> = | Assegnazione semplice Assegna il prodotto Assegna quoziente Assegna il resto Assegnare la somma Assegnare la differenza Assegna Bitwise e Assegna Bitwise xor Assegna Bitwise o Assegna il turno sinistro Assegna il cambio giusto | Da destra a sinistra |
, | Separatore di espressioni | Da sinistra a destra |
Queste regole guidano il compilatore su come valutare le espressioni con più operatori nella stessa espressione. L'operatore di moltiplicazione, ad esempio, ha una precedenza maggiore rispetto all'operatore di addizione nell'equazione A + B * C, in conformità con il precedenza regole. Pertanto, il compilatore valuterà prima l'espressione b * c prima di aggiungere un risultato.
Diamo un'occhiata a un esempio di Precedenza dell'operatore tramite codice.
#includereLe quattro variabili A, B, C e D, sono dichiarate nel codice sopra e i loro valori iniziali sono 43, 11, 16 e 31 di conseguenza. Quindi, applica una varietà di operatori aritmetici e di assegnazione a queste variabili in un'espressione. L'espressione aumenta il valore di A usando l'operatore pre-incremento ++ A, moltiplica il risultato per l'operatore post-decremento B-, quindi aggiunge il risultato alla divisione C per valore pre-decremento di D. (Utilizzo dell'operatore di pre -decremento -D). Il risultato variabile viene quindi utilizzato per trattenere il risultato totale di questa espressione.
Produzione
Associazione in c
Associatività si riferisce all'ordine in cui gli operatori vengono valutati durante un'espressione con la stessa precedenza. Da sinistra a destra e da destra a sinistra associatività sono le due forme di associazione in C. Se due operatori hanno lo stesso precedenza, sono valutati da sinistra a destra secondo il concetto di da sinistra a destra associatività. Tuttavia, se si osserva la stessa precedenza, gli operatori vengono valutati da destra a sinistra in base a destra a sinistra associatività.
Ad esempio, l'operatore di incremento ++ ha diritto a sinistra associatività, il che significa l'incremento operatore viene valutato dopo la variabile. Mentre il logico e operatore ha un sinistra a destra associatività, il che significa che l'operatore viene valutato da sinistra a destra.
#includereLe tre variabili A, B e C sono dichiarate in questo codice e sono inizializzate rispettivamente a 6, 3 e 2. Quindi, applica le operazioni di moltiplicazione e di divisione a queste variabili in un'espressione. Moltiplicazione e divisione sono classificate da sinistra a destra in C in base al loro associatività poiché hanno lo stesso livello di precedenza. Ciò indica che l'operazione di divisione viene prima, seguita dall'operazione di moltiplicazione quando si valuta l'espressione, un * b / c.
Produzione
Conclusione
Precedenza dell'operatore E associatività sono concetti cruciali nella programmazione C che aiutano a determinare l'ordine di esecuzione delle espressioni. Operatori con il più alto precedenza il livello viene valutato per primo e associatività Le regole aiutano a determinare l'ordine quando vengono utilizzati più operatori con la stessa precedenza. Comprensione Precedenza dell'operatore E associatività è essenziale quando si progetta programmi complessi e aiuta a produrre un codice più pulito e più efficiente con meno errori.