有关 sizeof 运算符的 c 编程查询 请在 windows 和 linux 中指定输出及其原因
void main()
{
char c='0';
printf("%d %d",sizeof(c),sizeof('0'));
}
void main()
{
char c='0';
printf("%d %d",sizeof(c),sizeof('0'));
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 C 中,
char Literal
的大小等于sizeof(int)
。因此,sizeof('0')
在您的实现中给出了sizeof(int)
的值。另外,按照标准的规定,
sizeof(char)
始终为 1。In C, size of
char literal
is equal tosizeof(int)
. Sosizeof('0')
gives the value ofsizeof(int)
on your implementation.Also
sizeof(char)
is always 1 as mandated by the Standard.输出将为
1 4
。'0'
文字的类型是int
,在大多数系统上其大小为4
。 C 标准要求sizeof(char)
为1
。如果您得到的值小于
4
,请进入时间机器,拨入+25 年
。The output will be
1 4
. The type of the'0'
literal isint
, which on most systems has a size of4
. The C standard requires thatsizeof(char)
is1
.If you get anything less than
4
, get in your time machine, and dial in+25 years
.