为了账号安全,请及时绑定邮箱和手机立即绑定

求助关于typedef int (*FuncType1)(char x1, char y1);

求助关于typedef int (*FuncType1)(char x1, char y1);

C PHP
大话西游666 2022-03-24 18:15:59
针对下面的说明中,typedef int (*FuncType1)(char x1, char y1);typedef int (*FuncType2)(char x2);typedef int (*FuncType3)(int x3, int y3);typedef int (*FuncType4)(int x4);FuncType1 Func1;FuncType2 Func2;FuncType3 Func3;FuncType4 Func4;int FuncA(int a1, int a2);哪项是正确的:( )(A) Func1 = FuncA;Func1(300,300);(B) Func2 = FuncA;Func1(300);(C) Func3 = FuncA;Func3(300,300);(D) Func4 = FuncA;Func4(300,300);
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

答案是:c
首先int FuncA(int a1, int a2);的两个参数都是int型,可以一下排除A、B、D三个答案,因为这三个答案犯的错误是:参数类型不匹配,以及参数个数不相等。
再者,简单说说“typedef”这个关键字:
先看你typedef语句的后半段:
(*FuncType1)(char x1, char y1);
(*FuncType2)(char x2);
(*FuncType3)(int x3, int y3);
(*FuncType4)(int x4);
说明这4个都是函数指针,且指向的函数的参数,不管是个数,还是类型,都是确定的
在看紧跟在typedef后的int,说明这个函数指针指向的函数返回的是int型的值
而根据你语句中的定义:
int FuncA(int a1, int a2);
必须要一个返回值为int型,参数个数为2,且两个参数都是int型的函数指针,才能指向这个函数。因此只有c答案才匹配。
注意:函数名同时也代表这个函数的入口地址。
That is my answer

查看完整回答
反对 回复 2022-03-28
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信