📌  相关文章
📜  门| Sudo GATE 2020 Mock II(2019年1月10日)|第49章

📅  最后修改于: 2021-06-29 20:16:50             🧑  作者: Mango

考虑下面的C代码:

#include "stdio.h"
  
int foo(int a)
{
 printf("%d",a);
 return 0;
}
  
int main()
{
 foo;
 return 0;
}

以下哪个选项是正确的?
(A)由于foo不带括号而将导致编译错误。
(B)没有编译错误,一些垃圾值将传递给foo函数。这将使foo与输出“垃圾整数”一起执行。
(C)没有编译错误,并且将零(即0)传递给foo函数。这将使foo以输出0执行。
(D)没有编译错误,但是不会执行foo函数。该程序将不会打印任何内容。答案: (D)
说明:在C语言中,如果使用的函数名称不带括号,则对该函数名称的引用只会生成指向该函数的指针,然后将其丢弃。因此,上面的程序可以编译,但不会打印任何内容。

选项(D)是正确的。
这个问题的测验