Возможный дубликат:
Размер символа ('a' ) в C / C ++
Почему эта программа выводит 4, а не 1?
void main()
{
printf("%d",int(sizeof('z')));
}
'z' - это символ, а sizeof('z')
должен выводить 1?
Возможный дубликат:
Размер символа ('a' ) в C / C ++
Почему эта программа выводит 4, а не 1?
void main()
{
printf("%d",int(sizeof('z')));
}
'z' - это символ, а sizeof('z')
должен выводить 1?
'z'
- это символьный литерал, а в C символьный литерал имеет тип int
. Итак, sizeof('z')
равно sizeof(int)
в вашей реализации.
Возможно, удивительно, что символьные константы в C имеют тип int, поэтому
sizeof('a')
равноsizeof(int)
char ch = 'z'; printf("%d", sizeof ch);
- person   schedule 28.05.2011void main
RAAAAAAAAARRRRRRRRRGGGGGGGGGHHHHHHHHH - person pmg   schedule 29.05.2011