Я пытался
printf("%d, %d\n", sizeof(char), sizeof('c'));
и получил 1, 4 на выходе. Если размер символа равен единице, почему 'c'
дает мне 4? Я думаю, это потому, что это целое число. Итак, когда я делаю char ch = 'c';
, происходит ли под капотом неявное преобразование из этого 4-байтового значения в 1-байтовое значение, когда оно назначается переменной char?
size_t
с помощью"%d"
. Посколькуsizeof
даетsize_t
объектsize_t
, вы должны напечатать его с помощью"%zu"
(C99) или преобразовать его вunsigned long
и напечатать с помощью"%lu"
(C89). - person Alok Singhal   schedule 13.02.2010