首页 > 试题广场 > 假设函数原型和变量说明如下: void f3(int(*p
[单选题]
假设函数原型和变量说明如下:
void f3(int(*p)[4]);
int a[4]={1,2,3,4},
int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

下面哪一个调用是非法的?

  • f3(&a);
  • f3(b[1]);
  • f3(&b[1]);
  • f3(b);
推荐
B。根据题目结合选项来看考察的是对函数的传参调用,其中参数涉及到数组指针 。
void f3(int(*p)[4]);    其参数是数组指针 指向数组p的指针
  • 选项A:f3(&a);  参数为一个地址,符合指针定义。
  • 选项B:f3(b[1]); 参数为一个数组的具体元素,不符合指针定义。所以B是非法的调用。
  • 选项C:f3(&b[1]); 参数为一个数组元素的地址,符合指针定义。
  • 选项D:f3(b);  参数为数组名,表示该数组的首地址,符合指针定义。




编辑于 2019-08-20 14:12:56 回复(1)
答案为B
发表于 2019-08-19 17:28:04 回复(0)
B
发表于 2019-08-20 04:28:33 回复(0)