用指針調用函數的不同形式
?
Ma Jia nan
2006-1-16
?
??? 最初一個函數指針必須用*操作符(和一對括號)“轉換為”一個“真正的”函數才能調用,如下所示:
?
????int r, func(), (*pf)() = func;?//函數指針的初始化
??? r = (*pf)();??//函數的指針調用形式1,等價于 r = func();
?
??? 函數總是通過指針進行調用的,所有“真正的”函數名總是隱式的退化為指向該函數的指針, 正如在對函數指針pf初始化做的那樣:
?
??? int func();
??? int (*pf)() = func;
?
??? 這有點類似數組名的行為(不帶下標操作符的數組名會被解釋成指向數組首元素的指針)。
??? 以上結論表明,下面的語句也是正確的。
?