01: // operatori di incremento/decremento prefissi e postfissi
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05: int main(int argc, char **argv){
06:
07: int m = 66, n;
08:
09: n = ++m; // l'operatore e' prefisso: prima eseguo incremento, poi rendo disponibile valore per il resto delle operazioni (in questo caso l'assegnamento a n)
10: printf("m = %d, n= %d\n", m, n);
11:
12:
13: n = m++; // l'operatore e' postfisso: prime rendo disponibile valore per il resto delle operazioni (in questo caso l'assegnamento a n) e solo dopo eseguo l'incremento
14: printf("m = %d, n= %d\n", m, n);
15:
16:
17: printf("m++ = %d\n", m++);
18: printf("m = %d\n", m);
19: printf("++m = %d\n", ++m);
20:
21: m = m++; // FIXME risultato potenzialmente non definito!
22: printf("m = %d\n", m);
23:
24: n = m++ + m++; // FIXME come sopra!
25: printf("n = %d\n", n);
26:
27: // n = ++m++; FIXME non compila, perche'? Ma perche' solo un lvalue puo' essere incrementato...
28: // printf("n = %d\n", n);
29:
30: return 0;
31: }
32:
33: /*
34: m = 67, n= 67
35: m = 68, n= 67
36: m++ = 68
37: m = 69
38: ++m = 70
39: m = 70
40: n = 141
41: */
42:
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it