Почему константа sizeof составляет 4 байта?

В приведенной ниже программе

выход – 1 4 4

#include void main() { char ch; ch='A'; printf("%d %d %d\n",sizeof(ch),sizeof('A'),sizeof(3.2f)); } 

Почему размер символьной константы составляет 4 байта?

Поскольку согласно стандарту C тип символьной константы является int , а не char .

Таким образом, это значение sizeof(int) на вашей платформе.

ch – тип char, поэтому 1 байт.

«A» – это тип int, равный 4 байтам. Поскольку в C константа символа является типом int.

Last имеет значение float, равное 4 байтам.

Эти значения соответствуют используемому вами устройству.

Редактировать –

Диапазон значений int и float зависит от используемого вами устройства, 16 бит int является общим, как 32 бит int.