【发布时间】:2016-03-29 10:49:09
【问题描述】:
char c = 'A';
printf("%d\n",sizeof(c));// output = 1
printf("%d\n",sizeof('A')); // output = 4
为什么sizeof 运算符为相同的字符提供不同的输出?请帮忙
【问题讨论】:
-
因为 'A' 没有类型。它被解释为
int。 -
@DavidHoelzer 它确实有一个类型,类型是
int -
很公平。由于 'A' 没有以任何方式强制转换,因此根据定义它是
int。我更关注的是它们的定义方式有所不同。谢谢! -
没有类型的表达式是不存在的......多么奇怪的概念。