0
点赞
收藏
分享

微信扫一扫

假设函数原型和变量说明如下:

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}};

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

  1. 正确答案: B 你的答案: C (错误)
  2. f3(&a);
  3. f3(b[1]);
  4. f3(&b[1]);
  5. f3(b);

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


举报

相关推荐

0 条评论