當前位置:成語大全網 - 書法字典 - 如何分析C語言的復雜類型

如何分析C語言的復雜類型

C語言聲明的復雜性大多來自各種類型聲明的嵌套。最典型的例子是指針、函數和數組的混合。為了準確理解復雜語句的確切含義,需要清晰連貫的邏輯。結合網絡上的教程,本教程是修修補補完成的。網上有很多例子,比如:1,int(* func)(int * p);2、int(* func)(int * p,int(* f)(int *));3、int func(void)【5】;在逐壹解析之前,我們應該首先說明解釋的方法。著名而有效的壹個是“左右法則”:“左右法則:開始閱讀內幕父母的聲明,Goright,然後向左走。遇到括號時,方向應該反過來。壹旦括號中的所有內容都解析完畢,請跳出括號。繼續,直到整個聲明都已解析。“首先看最裏面的括號,然後向右看,再向左看。每當妳遇到括號時,妳應該改變閱讀方向。壹旦括號中的所有內容都被解析,就跳出括號。重復此過程,直到整個聲明被解析。簡單來說,可以概括為:1。首先看看標識符:從左到右,括號中的標識符算作壹個。

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語言的數組名是右值,不能作為左值接收另壹個數組(即數組名只能用來賦值,不能賦值),所以函數返回值不能是數組,這是非法的。在實際編程過程中,不提倡使用如此復雜的語句。