2.看右邊:如果標識符右邊有“【】”,則為數組;“()”是壹個函數。
3.最後看左邊:根據類型符號確定聲明的類型。“*”表示它是壹個指針,因此請註意是否有括號將“*”與類型符號分開。以上面的語句為例:1,int(* func)(int * p);Int是類型符號,(*func)是標識符,右邊有壹個(),表示這是壹個函數,這個函數的形參是壹個整數指針(int *p)。從類型符號int中,我們可以知道這是壹個具有整數返回值的函數。(*func)是函數,所以func是函數的指針。因此,int(* func)(int * p)是壹個函數指針,它將整數指針作為形參並返回壹個整數。2、int(* func)(int * p,int(* f)(int *));它與前壹個示例相似,只是多了壹個形式參數,即前壹個示例的語句。3、int func(void)【5】;這種說法實際上是非法的說法。Func是壹個函數,它的返回值是壹個包含5個int元素的數組。但是C語言的函數返回值不能是數組,因為如果允許函數返回值是數組,那麽接收這個數組內容的東西也必須是數組。但是C語言的數組名是右值,不能作為左值接收另壹個數組(即數組名只能用來賦值,不能賦值),所以函數返回值不能是數組,這是非法的。在實際編程過程中,不提倡使用如此復雜的語句。