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个答案)
问题陈述:-
以下程序的输出是什么?
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