01: // conversioni implicite o automatiche
02: #include<stdio.h>
03: #include<stdlib.h>
04: #include<limits.h>
05:
06: int main(int argc, char **argv){
07:
08: float ris;
09: unsigned int a = 42;
10: long b = 17;
11: short c = 1;
12:
13: ris = a/b + c;
14:
15: // a e' unsigned int mentre b e' long e c e' short
16: // conversioni implicite nell'ordine:
17: // 1. c viene convertito automaticamente in int
18: // 2. devo calcolare a/b ma a e b tipi differenti, converto nel tipo di ordine maggiore ovvero converto a in long ed effettuo il calcolo
19: // 3. il risultato di a/b e', dopo le conversioni, di tipo long devo calcolare somma con c che era stato convertito in int. Ai fini del calcolo converto c in long
20: // 4. conversione di assegnamento, converto il risultato in float
21:
22: printf("Il risultato di %d/%ld+%d e' %f\n", a, b, c, ris); // OUTPUT: Il risultato di 42/17+1 e' 3.000000 XXX come mai?
23:
24: return 0;
25: }
26:
27:
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