INTRODUZIONE ALLA PROGRAMMAZIONE IN C



Operatori aritmetici



Come gia' accennato, le assegnazioni in C vengono effettuate utilizzando "=". Oltre agli operatori arimetici standard +,-,*,/ e all'operatore % (modulo) per gli interi, in C si hanno anche gli operatori incremento ++ e decremento --, che possono essere preposti o posposti all'argomento. Se sono preposti il valore e' calcolato prima che l'espessione sia valutata, mentre se sono posposti il valore viene calcolato dopo la valutazione della espressione. Ad esempio: int x,z=2; 1) x=(++z)-1; A questo punto x=2 e z=3 int x,z=2; 2) x=(z++)-1; A questo punto x=1 e z=3 Riportiamo un ulteriore esempio: int x,y,w; main() { x=((++z)-(w--))%100; } che equivale alle seguenti istruzioni: int x,y,w; main() { z++; x=(z-w)%100; w--; } E' importante sottolineare che un'istruzione del tipo x++ e' piu' veloce della corrispondente x=x+1 L'operatore "%" (modulo) puo' essere utilizzato solamente con le variabili di tipo integer; la divisione "/" e' utilizzata sia per gli integer che per i float. A proposito della divisione riportiamo un altro esempio: z=3/2 dove z avra' valore 1, anche se e' stato dichiarato come float (di regola, se entrambi gli argomenti della divisione sono integer, allora verra' effettuata una divisione integer); per avere un risultato corretto sara' necessario scrivere: z=3.0/2 oppure z=3/2.0 o, ancora meglio, z=3.0/2.0 Inoltre esiste una forma contratta per espressioni del tipo expr1 = expr1 op expr2 (ad esempio: i=i+2 oppure x=x*(y+3)) che diventano: expr1 op = expr2 Per cui i=i+2 puo' essere scritta nel modo contratto come i+=2 od x=x*(y+3) diventare x*=y+3. Nota: l'espressione x*=y+3 corrisponde a x=x*(y+3) e non a x=x*y+3.