I tipi interi più piccoli di int vengono promossi quando viene eseguita un'operazione su . Se tutti i valori del tipo originale possono essere rappresentati come int, il valore del tipo più piccolo viene convertito in un int; in caso contrario, viene convertito in un int unsigned.
Le promozioni intere richiedono la promozione di ciascuna variabile (c e i) in dimensione int.
short i = 20;
char c = 97;
//The two int values are added and the sum is truncated to fit into the char type.
char a = c + i;
printf("%d, %d, %d %d\n", sizeof(i), sizeof(c), sizeof(c + i),sizeof(a));
2, 1, 4 1
fonte
2013-07-19 10:20:45
Promozione intera? – nouney
(c + i) viene aggiunto per primo e la dimensione di è calcolata per il risultante .. e il risultato è un numero intero .. quindi la dimensione è 4 .. –
Nitpick: 'sizeof' non è una funzione, è un operatore. – milleniumbug