題組內容
一、
⑴假設有三個函數或函數指標宣告如下:char * cmpA(int ); char (*cmpB)(int ); char * (*cmpC)(int);
請比較 cmpA, cmpB, cmpC 三個變數之差異。(9 分)
詳解 (共 1 筆)
詳解
返回類型:
cmpA 是一個函數,返回類型為 char *。
cmpB 是一個函數指標,指向的函數返回類型為 char。
cmpC 是一個函數指標,指向的函數返回類型為 char *。
函數類型:
cmpB 是一個函數指標,指向的函數返回類型為 char。
cmpC 是一個函數指標,指向的函數返回類型為 char *。
函數類型:
cmpA 是直接的函數宣告,不是指標。
cmpB 和 cmpC 都是函數指標宣告,它們指向不同類型的函數。
使用方式:
cmpB 和 cmpC 都是函數指標宣告,它們指向不同類型的函數。
使用方式:
cmpA 可以直接作為函數來調用,如 char *result = cmpA(10);。
cmpB 是一個指標,首先需要指向一個具體的函數,然後才能調用,如:
c
複製程式碼
char someFunction(int);
cmpB = someFunction;
char result = (*cmpB)(10); // 或者 cmpB(10);
cmpC 也是一個指標,同樣需要指向一個具體的函數,然後才能調用,如:
c
複製程式碼
char *someFunction(int);
cmpC = someFunction;
char *result = (*cmpC)(10); // 或者 cmpC(10);
cmpB 是一個指標,首先需要指向一個具體的函數,然後才能調用,如:
c
複製程式碼
char someFunction(int);
cmpB = someFunction;
char result = (*cmpB)(10); // 或者 cmpB(10);
cmpC 也是一個指標,同樣需要指向一個具體的函數,然後才能調用,如:
c
複製程式碼
char *someFunction(int);
cmpC = someFunction;
char *result = (*cmpC)(10); // 或者 cmpC(10);