Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
问题陈述:-
以下程序的输出是什么?
main( ) { printf ( "\n%d%d", sizeof ( '3' ), sizeof ( "3" ), sizeof ( 3 ) ) ; }
我正在使用 32 位 gcc 编译器。它正在将输出打印为-
4, 2, 4
我很困惑为什么要打印4. sizeof ( '3' )3 是单引号,所以它是一个字符,对吗?那么它不应该打印出4吗?我对吗?
4
sizeof ( '3' )
字符文字是 C 中的整数。这意味着sizeof('3')与sizeof(int). 在您的机器上,看起来像4.
sizeof('3')
sizeof(int)
编者注:
打印结果 时不要%d用作格式字符串。返回 a ,因此您应该改用。sizeofsizeofsize_t%zu
%d
sizeof
size_t
%zu
您应该为main. 即:int main(void)或int main(int argc, char **argv)。不只是main()。
main
int main(void)
int main(int argc, char **argv)
main()
如果您使用正确的原型main,请确保您的程序返回一些内容。 return 0;最后,例如。
return 0;