Precedenza dell'operatore in C

Precedenza dell'operatore in C

Quando valutiamo qualsiasi espressione che coinvolga l'uso di diversi operatori in esso, siamo obbligati a risolvere l'espressione per calcolare i suoi valori in base alla precedenza dell'operatore. La precedenza è il termine per l'assegnazione di una priorità o di peso a un certo valore/termine, quindi l'operatore la precedenza assegna la priorità agli operatori in un'espressione. Per capirlo, assumere qualsiasi espressione, E.G., 8*3+2 e la risposta a questa espressione potrebbe comportare rispettivamente due valori diversi, "26" e "40". Tuttavia, sceglieremo il risultato dell'espressione come "26", poiché l'operatore "*" di moltiplicazione ha una maggiore precedenza dell'operatore rispetto all'operatore di addizione "+", quindi l'espressione calcolerà prima la moltiplicazione tra 8 e 3 e il Il risultato verrà quindi aggiunto con il 2. Molti operatori nel linguaggio di programmazione C hanno più priorità rispetto agli altri operatori.

Procedura

La precedenza dell'operatore è un concetto importante nei metodi numerici per risolvere un'espressione. Abbiamo bisogno di questa precedenza per risolvere l'espressione. Se non seguiamo alcuna regola, non sapremo quale operatore risolvere per primo e potremmo ottenere una risposta diversa ogni volta. Per evitare questa confusione, abbiamo standardizzato la priorità per gli operatori che dicono quale operatore dobbiamo valutare prima in qualsiasi espressione. Risolveremo vari esempi con diversi operatori in questo articolo.

Esempio 01

Nell'esempio, eseguiremo un programma nel compilatore Visual Studio C che calcolerà l'espressione numerica che coinvolge alcuni operatori numerici. Se prendiamo un'espressione di esempio come:

6*5-4+2

Senza la precedenza dell'operatore, abbiamo due modi per risolvere questa espressione. Un modo è risolvere questa espressione valutando gli operatori da sinistra a destra. Se lo facciamo, otterremo la risposta "28". Un altro modo per risolvere l'espressione è se iniziamo a valutare gli operatori da destra a sinistra, calcoleremo la risposta per questa espressione come "26". Le risposte che abbiamo sono diverse l'una dall'altra e sono anche sospette. Come dovremmo scegliere quale risposta è corretta se queste risposte non sono sbagliate? Risolviamo questo esempio nel compilatore C sviluppando un programma per questa operazione. Visual Studio C ha la precedenza dell'operatore predefinito per tali espressioni.

Per implementare questo, dobbiamo creare un progetto e quindi dichiarare la funzione principale come "main ()" con il tipo di ritorno "intero". Nella funzione principale, inizializza un numero intero con un nome variabile "A" e assegna la precedente espressione numerica ad esso. Quindi visualizzare il risultato per questa espressione nella variabile chiamando il metodo printf (), che prenderà il specificatore del formato per la variabile intera "a" come "%i" e anche il nome della variabile "a" nei suoi argomenti. Ecco il programma più breve che potresti eseguire:

#includere
int main ()

int a = 6 * 5 - 4 + 2;
printf ("%i", a);
restituzione 0;

L'output dell'espressione "A" verrà quindi calcolato da questo programma come "28".

Esempio 02

Per saperne di più sulla precedenza dell'operatore, risolveremo un esempio per l'espressione che coinvolge gli operatori aritmetici e gli operatori della staffa e apprenderebbe come il linguaggio di programmazione C dà la precedenza a più tipi di operatori. L'espressione su cui lavoreremo in questo esempio è la seguente:

((3*8) +2) -2

L'espressione coinvolge i due operatori tra parentesi e l'operatore aritmetico "+". Per verificare come il compilatore per C risolverà questa espressione, crea un nuovo progetto e dichiara una funzione denominata "Main" con intero "int" come tipo di ritorno. In questa funzione, inizializza una variabile "x" con un numero intero del tipo di dati. A questa variabile, assegnare l'espressione numerica, E.G., "Int x = ((3*8) +2) -2" e visualizza la variabile nell'output.

#includere
int main ()

int x = ((3 * 8) + 2) - 2;
printf ("%i", x);
restituzione 0;

L'output per la variabile "X" dichiarata nell'esempio precedente sarebbe il valore numerico "24". Abbiamo questo output poiché il linguaggio di programmazione C precede l'operatore tra parentesi rispetto all'operatore aritmetico "+". Quindi, il primo operatore valutato nell'espressione è stato l'operatore tra parentesi, che ha comportato la moltiplicazione dei due valori, 3 e 8, che ha dato il valore 24. Quindi il compilatore ha nuovamente risolto il secondo operatore tra parentesi, che ha aggiunto il valore risultante dalla prima parentesi con valore numerico 2. La risposta alla seconda parentesi è "26". Poi è arrivato il turno per la sottrazione e "2" è stato sottratto da 26, il che ha portato alla risposta dell'espressione come 24.

Esempio 03

Per il terzo esempio, risolveremo un'espressione che coinvolge gli operatori che sono uguali o hanno la stessa precedenza. Per un tale caso, implementiamo un esempio in cui dichiarare le tre variabili x, y e z, tutte avendo lo stesso tipo di dati di un numero intero con i valori inizializzati come 30, 20 e 10. Vogliamo confrontare tutti e tre i valori come x> y> z. Se la condizione (x> y> z) diventa vera, l'output stamperà "corretto". Altrimenti, "falso". Questo esempio è implementato nel modo seguente:

#includere
int main ()

int x = 30;
int y = 20;
int z = 10;
if (x> y> z)
printf ("corretto");
altro
printf ("false");
restituzione 0;

Dal codice precedente, possiamo vedere che l'espressione ha solo operatori di comparatore. Nel programma C, quando esiste lo stesso tipo di operatore nell'espressione, calcoliamo semplicemente l'espressione valutando l'operatore da sinistra a destra. Questo è il motivo per cui l'output ha visualizzato il "corretto" per l'espressione. Se ci spostiamo da sinistra a destra e confrontiamo (x> y)> z, allora questa sarebbe un'istruzione corretta per i valori x = 30, y = 20 = e z = 10.

Conclusione

La precedenza dell'operatore è la regola fondamentale di assegnare priorità agli operatori mentre si occupa di espressioni numeriche nei programmi scritti in c. Questo articolo evidenzia la precedenza degli operatori sugli stessi e diversi operatori a scopo di valutazione. Abbiamo implementato tre diversi esempi con tre diversi casi che coinvolgono la precedenza dell'operatore.