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

📅  最后修改于: 2021-09-25 05:14:40             🧑  作者: 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)是正确的。
这个问题的测验