📜  门| GATE-CS-2016(Set 1)|问题22

📅  最后修改于: 2021-06-28 18:38:48             🧑  作者: Mango

考虑下面的C程序。

void f(int, short);
void main()
{
  int i = 100;
  short s = 12;
  short *p = &s;
  __________ ;   // call to f()
}

将以下哪一个表达式放在上面的空白中,将不会导致类型检查错误?

(A) f(s,* s)

(B)我= f(i,s)
(C) f(i,* s)
(D) f(i,* p)答案: (D)
说明: i是整数,* p是指向short的指针的值。

1)选项1是错误的,因为我们将“ * S”作为第二个参数传递,请检查S是否不是指针变量。因此出错
2)第二种选择是我们试图将f(i,s)的值存储到i中,但要查看main之外没有返回类型的函数定义。它完全是无效的,因此分配是错误的。如此错误
3)选项3错误是因为选项1错误的原因相同
4)因此,选项d是正确的。
这个问题的测验