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: getchar();
22:
23: m = m++; // FIXME risultato potenzialmente non definito!
24: printf("m = %d\n", m);
25:
26: n = m++ + m++; // FIXME come sopra!
27: printf("n = %d\n", n);
28:
29: // n = ++m++; FIXME non compila, perche'? Ma perche' solo un lvalue puo' essere incrementato...
30: // printf("n = %d\n", n);
31:
32: return 0;
33: }
34:
35: /*
36: m = 67, n= 67
37: m = 68, n= 67
38: m++ = 68
39: m = 69
40: ++m = 70
41: m = 70
42: n = 141
43: */
44:
Se avete commenti o osservazioni 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