型別的右左法則

2022-07-26 17:45:10 字數 1044 閱讀 5207

*  讀作 「指向...的指標」   

讀作 「...的陣列」   

()  讀作 「返回...的函式」 

找到宣告中的識別符號(identifier),它就是你分析的起始點,讀作:「$(identifier)是...」; 

看你的識別符號右邊 

a) 如果發現「()」,你將知道這是乙個函式宣告,這時你可以說「$(identifier)是返回...的函式」; 

b) 如果發現「」,你將知道這是乙個陣列宣告,這時你可以說「$(identifier)是...的陣列」; 

c) 繼續向右,直到遇到右邊宣告結束或者遇到「)」,繼續下面。 

看你的識別符號左邊 

a) 如果碰到的不是我們在0.中定義的符號,則直接說出它;否則按照0.中定義的符號含義說出。繼續向左,直到遇到左邊宣告結束或「(」。 

4. 重複2和3的步驟,直到宣告分析完畢。 

我們從簡單到複雜,循序漸進。 

[example 1] int *p; 

1) 找到識別符號:p,讀作:「p是...」; 

2) 向右看:發現一「」,然後遇到右邊宣告結尾,讀作:「p是...的陣列」; 

3) 向左看:發現一「*」, 讀作:「p是指向...的指標的陣列」; 

4) 繼續向左看:沒有發現0.中定義的符號,則分析結束,讀作:「p是指向int型別的指標的陣列」。 

[example 2] int *(*func())(); 

1) 找到識別符號:func,讀作:「func是...」; 

2) 向右看:發現一「()」,然後遇到「)」,讀作:「func是返回...的函式」; 

3) 向左看:發現一「*」,然後遇到「(」,讀作:「func是返回指向...的指標的函式」; 

4) 向右看:發現一「()」,然後右邊宣告結束,讀作:「func是返回指向返回...的函式的指標的函式」; 

5) 向左看:發現一「*」,讀作:「func是返回指向返回指向...的指標的函式的指標的函式」; 

6) 向左看:沒有發現.中定義的符號,則分析結束,讀作:「func是返回指向返回指向int型別的指標的函式的指標的函式」。 

c c 右左法則

原文 右左法則不是c標準裡面的內容,它是從c 標準的宣告規定中歸納出來的方法。c 標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。右左法則原文 the right left rule start reading the declaration f...

右左法則舉例

1,int fp1 int 10 這是乙個函式指標變數,指向乙個形參為int,返回值為乙個陣列指標,該指標指向乙個整型指標陣列。2,int arr 5 這是乙個函式指標陣列,該陣列裡的元素指向形參為空,返回值為乙個函式指標,形參為空,返回值為int 3,float b 這是乙個函式,形參為空,返回值...

指標的右左法則

指標的右左法 右左法則 右左法則的英文原文翻譯 首先從最裡面的圓括號開始閱讀,然後向右看,再往左看。每當遇到圓括號時,就應該調轉閱讀方向。一旦解析完圓括號裡面所有東西,就跳出圓括號。重複整個過程直到整個宣告解析完成。其實左右法則就是以標示符為中心點,自右向左旋轉解讀指標的宣告含義。例如 int a ...