This question already has answers here:
Closed 6 years ago.
Why are C character literals ints instead of chars?
(12个答案)
why sizeof('a') is 4 in C? [duplicate]
(3个答案)
问题陈述:-
以下程序的输出是什么?
我正在使用32位gcc编译器。它将输出打印为-
我很困惑为什么它要为
(12个答案)
why sizeof('a') is 4 in C? [duplicate]
(3个答案)
问题陈述:-
以下程序的输出是什么?
main( )
{
printf ( "\n%d%d", sizeof ( '3' ), sizeof ( "3" ), sizeof ( 3 ) ) ;
}
我正在使用32位gcc编译器。它将输出打印为-
4, 2, 4
我很困惑为什么它要为
4
打印sizeof ( '3' )
。3是单反逗号,所以它是一个字符,对吗?那就不应该打印出4?我说得对吗? 最佳答案
字符文本是C中的整数,这意味着sizeof('3')
与sizeof(int)
相同。在你的机器上,这看起来像4
。
编者按:
打印%d
结果时不要使用sizeof
作为格式字符串。sizeof
返回一个size_t
,因此应该改用%zu
。
您应该为main
使用正确的原型。即:int main(void)
或int main(int argc, char **argv)
。不仅仅是main()
。
如果对main
使用正确的原型,请确保程序返回某些内容。例如,在结尾。
关于c - C程序输出中的sizeof ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16909876/
10-16 04:37