Ho provatoIn C, perché sizeof (char) 1, quando 'a' è un int?
printf("%d, %d\n", sizeof(char), sizeof('c'));
e ottenuto 1, 4 come uscita. Se la dimensione di un personaggio è una, perché lo 'c'
mi dà 4? Immagino sia perché è un numero intero. Quindi quando faccio char ch = 'c';
c'è una conversione implicita che sta avvenendo, sotto il cofano, da quel valore di 4 byte ad un valore di 1 byte quando è assegnato alla variabile char?
ho credere che sia a che fare con la promozione automatica intero, qualcuno con più fatti di fede pubblicherà un fattuale risposta –
@Roger: Egli chiede circa la differenza tra C e C++ sizeof ('a'), mentre ho chiesto se c'è una conversione in corso? Vedi il corpo della domanda. Ho già dedotto che 'a' è un numero intero in C. – legends2k
Devo ringraziare "David Rodríguez - dribeas" per aver segnalato che il link nella mia risposta non è corretto. Sto cancellando la mia risposta. legends2k, la risposta corretta dovrebbe andare a Peter o Neil, a mio modesto parere. –