Логика за sizeof () для символьных констант и имен функций [дубликат]
На этот вопрос уже есть ответ здесь:
Размер символа («а») в C / C ++ 4 ответаПочему символьные литералы типа C вместо символов? 12 ответовВ С следующий код:
#include
int main()
{
char c='a';
printf("%d %d",sizeof(c),sizeof('a'));
return 0;
}
дает результат1
а также4
? Пожалуйста, объясните логику?
Кроме того, почемуsizeof(main())
результат в4
ноsizeof(main)
результаты в:1
#include
int main()
{
printf("%d %d\n",sizeof(main), sizeof(main()));
return 0;
}
И вC ++ Почемуsizeof('a')
результат в 1, но sizeof ('средний') результаты в 4?