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

针对下面的说明中,
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);



大话西游666
浏览 138回答 1
1回答

慕少森

答案是: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
打开App,查看更多内容
随时随地看视频慕课网APP