GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sulla programmazione C Linux Parte 11 - Operatori aritmetici, relazionali e logici

Finora, in questa serie di tutorial sulla programmazione C, abbiamo discusso di cose di base come funzioni, array, variabili e altro. Continuando con il flusso, in questo tutorial, discuteremo un altro concetto di base di questo tipo:gli operatori.

Come principiante nel linguaggio di programmazione C, ti occuperai principalmente di tre tipi di operatori:aritmetici, relazionali e logici. Cominciamo con gli operatori dell'aeronautica.

Esistono essenzialmente 5 tipi di operatori aritmetici in C: +, -, *, / e %. Mentre +, - e / sono autoesplicativi, * si riferisce alla moltiplicazione e % è l'operatore del modulo. Nel caso non lo sapessi, l'operatore % ti dà un resto. Ad esempio:

a % b

Qui, l'operatore % si assicura di ottenere il valore residuo quando 'a' è diviso per 'b.' Ciò significa che il resto può essere zero nei casi in cui 'a' è completamente divisibile per 'b'. Ecco un piccolo esempio che dovrebbe darti maggiore chiarezza su questi operatori:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = a + b;
printf("%d\n", c);

c = a - b;
printf("%d\n", c);

c = a*b;
printf("%d\n", c);

c = a/b;
printf("%d\n", c);

c = a%b;
printf("%d\n", c);

return 0;
}

Di seguito è riportato l'output di questo programma:

13 
7
30
3
1

Vale la pena ricordare qui che quando si ha a che fare con float e double, non dovresti usare l'operatore %. Inoltre, gli operatori + e - che abbiamo usato qui sono operatori binari, il che significa che richiedono due operandi (ad esempio, 'a' e 'b' nel nostro caso). Esistono anche operatori unari + e -, che funzionano su un singolo operando.

Ecco un esempio dell'operatore unario - in azione:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = -a;
printf("c = %d", c);
}

Ecco l'output:

c = -10

Tra tutti gli operatori discussi finora, per precedenza, unario + e - condividono il primo posto, seguito da *, / e %, che sono a loro volta seguiti da binario + e -.

Si noti che ci sono anche altri operatori unari, alcuni dei quali abbiamo già discusso indirettamente nei nostri tutorial precedenti. Ecco l'elenco:++, --, !, &e sizeof.

Abbiamo già discusso degli operatori di incremento e decremento ++ e -- (in entrambe le forme di prefisso e suffisso). ! è l'operatore NOT che nega qualsiasi cosa su cui è applicato. Ad esempio, se il risultato di una condizione è vero, applicando ! lo convertirà in falso e viceversa.

Andando avanti, &viene utilizzato per recuperare l'indirizzo di una variabile (come già visto nel caso degli argomenti della funzione scanf()), mentre l'operatore sizeof fornisce la dimensione dell'operando passato ad essa. Il seguente pezzo di codice dovrebbe darti un'idea migliore di questi operatori:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0, d =1, e=0, f=9;

printf("a = 10 and a++ = %d\n", a++);

printf("b = 3 and ++b = %d\n", ++b);

printf("c = 0 and c-- = %d\n", c--);

printf("d = 1 and --d = %d\n", --d);

if(!e)
{
printf("\n e is zero or FALSE and its address is: %u\n", &e);
printf("\n sizeof 'f' is: %u\n", sizeof(f));

}


return 0;

}

Ed ecco l'output:

a = 10 and a++ = 10 
b = 3 and ++b = 4
c = 0 and c-- = 0
d = 1 and --d = 0

e is zero or FALSE and its address is: 856178696

sizeof 'f' is: 4

Andando avanti, diamo rapidamente un'occhiata agli operatori relazionali e logici. Di seguito sono riportati gli operatori relazionali:

> >= < <= == !=

Ecco come possono essere utilizzati:

a > b
a >= b
a < b
a <= b
a == b
a != b

In ordine di apparizione sopra, questi operatori controllano se 'a' è maggiore, maggiore o uguale a, minore, minore o uguale a, uguale e diverso da 'b'. I primi quattro operatori hanno la stessa precedenza, che è maggiore degli ultimi due. Nota che gli ultimi due operatori sono anche chiamati operatori di uguaglianza.

E infine, arrivando agli operatori logici. Ce ne sono essenzialmente due:&&e ||. Entrambi questi operatori vengono utilizzati principalmente per valutare condizioni o espressioni. Ad esempio:

if (cond1 && cond2)
{

}

if (expr1 && expr2)
{

}

if (cond1 || cond2)
{

}

if (expr1 || expr2)
{

}

Nel caso delle prime due istruzioni if, l'esecuzione entrerà nel blocco solo se entrambe le condizioni sono vere. Mentre nel caso delle ultime due istruzioni if, l'esecuzione entrerà nel blocco se una qualsiasi delle condizioni di espressione è vera.

Tieni presente che gli operatori relazionali hanno una precedenza inferiore rispetto agli operatori aritmetici e quella degli operatori logici è inferiore agli operatori relazionali e di uguaglianza. Tra di loro, &&ha una precedenza maggiore di ||.

Conclusione

In questo tutorial, abbiamo discusso le basi degli operatori, come funzionano e la loro precedenza. Si consiglia di creare alcuni programmi C di esempio per testare i concetti discussi qui. In caso di dubbi o domande, faccelo sapere nei commenti qui sotto.


Linux
  1. C Tutorial di programmazione Parte 5 - Variabili di carattere

  2. Esercitazione sulla programmazione C Linux Parte 10 - Ambiti variabili

  3. Esercitazione sulla programmazione C Linux Parte 9:Stringhe

  4. Esercitazione sulla programmazione C Linux Parte 8 - Chiamata per valore Vs Chiamata per puntatore/indirizzo

  5. Esercitazione sulla programmazione C Linux Parte 8 - Chiamata per valore Vs Chiamata per puntatore/indirizzo

5 interessanti suggerimenti e trucchi per la riga di comando in Linux - Parte 1

Come confrontare e unire file di testo su Linux (parte 2)

Esercitazione sulla programmazione C Linux Parte 18:Funzioni ricorsive

Come installare e utilizzare KompoZer in Linux - Tutorial

Come installare e utilizzare Kerkythea in Linux - Tutorial

Backup e ripristino di snapshot LVM su Linux