0

问题陈述:-

以下程序的输出是什么?

main( ) 
{ 
 printf ( "\n%d%d", sizeof ( '3' ), sizeof ( "3" ), sizeof ( 3 ) ) ; 
}

我正在使用 32 位 gcc 编译器。它正在将输出打印为-

4, 2, 4

我很困惑为什么要打印4. sizeof ( '3' )3 是单引号,所以它是一个字符,对吗?那么它不应该打印出4吗?我对吗?

4

1 回答 1

4

字符文字是 C 中的整数。这意味着sizeof('3')sizeof(int). 在您的机器上,看起来像4.

编者注:

  1. 打印结果 时不要%d用作格式字符串。返回 a ,因此您应该改用。sizeofsizeofsize_t%zu

  2. 您应该为main. 即:int main(void)int main(int argc, char **argv)。不只是main()

  3. 如果您使用正确的原型main,请确保您的程序返回一些内容。 return 0;最后,例如。

于 2013-06-04T04:35:19.443 回答