Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 16 di 47
  • livello principiante
Indice lezioni

Proprietà degli operatori

Le regole per scrivere senza errori gli operatori
Le regole per scrivere senza errori gli operatori
Link copiato negli appunti

Gli operatori hanno diverse caratteristiche e regole che permettono a noi di scriverli correttamente, e al compilatore di capire come utilizzarli. Questo accade perché se non fossero specificate delle regole precise, il compilatore che agisce in modo automatico (ed automatizzato) non saprebbe come interpretare quello che è stato scritto.

Visto che non può "fare di testa sua", dobbiamo essere noi a conoscere le regole seguite nella sintassi del linguaggio C e presentare, quindi, quello che vogliamo fare in una forma traducibile e sensata per il compilatore.

Le proprietà da conoscere sono poche e non è nemmeno necessario ricordarsele esattamente, basta seguire le convenzioni e, con il tempo, si vedrà che diventerà naturale scrivere programmi "sintatticamente" corretti. Esse sono:

  • Posizione - Un qualsiasi operatore ha una determinata posizione rispetto ad i suoi operandi. Si dice che un operatore è prefisso se compare prima degli operandi, postfisso se compare dopo e infisso se compare tra gli operandi;
  • Arietà - Questa rappresenta il numero di argomenti che un operatore può accettare. Ad esempio l'operatore ++ ha arietà uguale a uno (A++), il simbolo + ha arietà uguale a due (A + B), mentre l'unico operatore ad avere arietà uguale a tre è l'operatore ternario " ? : " (A ? B : C), di cui parleremo nella lezione 8;
  • Precedenza (o priorità) - La precedenza è un valore che identifica gli operatori più importanti e quelli meno importanti; maggiore è la priorità minore è il valore che la identifica: questi valori risultano utili, ad esempio, quando si eseguono delle operazioni matematiche, per stabilire quali operazioni debbano essere eseguite per prime, questo, ovviamente, in mancanza di parentesi tonde che potrebbero modificare l'ordine con cui si eseguono le operazioni sulle variabili (in realtà ciò accade semplicemente perché le parentesi tonde hanno una priorità maggiore);
  • Associatività - L'associatività stabilisce, a parità di priorità, quale sia l'ordine con cui bisogna eseguire i vari operatori. Se l'operatore è associativo a sinistra, si scorrerà da sinistra verso destra, mentre se è associativo a destra, si farà l'esatto contrario.

Esempi tipici in cui intervengono le proprietà degli operatori, si hanno nell'interpretazione di formule matematiche, come nell'esempio seguente:

a + b * c

/* che viene interpretato come
* a + (b * c), e non (a + b) * c
* perchè la moltiplicazione ha
* precedenza maggiore
*/

a - b - c

/* che viene interpretato come
* (a - b) - c , perchè l'associatività
* della sottrazione è a sinistra
*/

Esempio pratico

(Visualizza il sorgente completo)

Gli operatori matematici non vengono usati moltissimo nel programma; vengono, al contrario, usati molti operatori di confronto. Questo dipende esclusivamente dal fatto che il programma lavora prevalentemente con il testo e non con i numeri. Ecco un estratto di codice che mostra vari confronti:

396  if (subscelta < i)
397  { // IF - OPEN
398
399    // Se la lista èvuota esco
400    if(p == NULL)
401      return;
402
403    // Se la lista ha almeno due elmenti...
404    if(p->pun != NULL)

Ti consigliamo anche