針對下面的說明中,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
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消