1铝耻、方法也是有類型的誊爹,方法的類型由返回類型和形參表決定。比如int F (int)的類型就是去掉方法名瓢捉,int (int)频丘。
2、對于方法類型泡态,在返回類型和形參表之間搂漠,加上一個名稱F,就表示一個特定的方法F某弦。
3桐汤、思考,如果我在返回類型和形參表之間刀崖,加上一個指針變量呢惊科?
表示指向這一類方法的指針。即int (*P) (int)亮钦,需要特別注意的是馆截,必須使用括號把*P括起來。如果沒有括起來,int *P(int)蜡娶,從編譯器的角度理解混卵,就變成了返回int指針的方法聲明。
4窖张、思考幕随,方法指針也是指針,既然方法能夠返回其他指針宿接,當然也可以返回方法指針赘淮。
方法指針的類型就是去掉指針名稱,int(*)(int)睦霎。從人的角度思考梢卸,返回方法指針的方法應該是 int(*)(int) H(int)。但是副女,我們應該從編譯器的角度思考蛤高,編譯器首先找到方法名,去掉方法名和形參表碑幅,剩下的就是返回類型了戴陡。因此,實際的寫法是int (* H(int)) (int)沟涨。
為了便以理解恤批,使用
typedef int(*PF)(int);
PF H (int)。
5拷窜、思考开皿,方法指針數(shù)組的聲明,從人的角度思考篮昧,應該是int(*) (int) a[10]; 實際上是 int(* a[10])(int)。
6笋妥、思考懊昨,指向數(shù)組的指針,從人的角度思考春宣,應該是int[10] *p; 實際上是int (*p)[10]酵颁。
7、可以認為月帝,編譯器并不是從左到右讀取聲明躏惋,而是聲明的對象放在了中間,并用括號括起來嚷辅,保證優(yōu)先級最高簿姨,去掉名稱,剩下的就是類型。
8扁位、特別注意准潭,復雜的聲明是非常糟糕的編碼風格,嚴重影響代碼的可讀性域仇,應該盡量避免刑然,可以使用typedef。