右左法則及應用例項

2021-07-24 20:50:58 字數 1033 閱讀 4666

1.      第一次開始閱讀宣告的時候,必須從變數名開始,而不是從最內部的括號開始

2.      最後兩個字是本質

3.      先從變數看起,向右看,碰到小括號後再向左看

4.      確定是變數後就要確定變數中儲存的是什麼值;確定是指標變數後就要確定指標儲存的是什麼的位址或指標變數指向什麼值;確定是陣列後就要確定陣列中每乙個元素的型別;確定是函式後就要說明函式的形參型別和返回值型別。

例項說明:

簡單版:

int a ;     整型變數

int *a;    整型指標變數

int **a    整型指標的指標變數

int a[10]   整型陣列

int *a[10]  整型指標陣列

int (*a)[10]  陣列指標變數

int (*a)(int)  函式指標變數

int (*a[10])(int )  函式指標陣列

加強版:

int  *(*(*fp1)(int))[10];

宣告乙個函式指標變數,該指標指向形參是整型,返回值是陣列指標的函式,該陣列指標指向乙個整型指標陣列。

int  *(*(*arr[5])())();

宣告乙個函式指標陣列arr,該陣列中的每乙個元素指向形參為空,返回值是函式指標的函式,該函式指標指向乙個形參是空返回值是整型指標的函式

float  (*(*b()))();

宣告乙個形參是空,返回值是陣列指標的函式,該指標指向乙個指標陣列,陣列中的每乙個元素指向乙個形參是空,返回值是float 型的函式。

void  *(*c)(char a, int (*b)());

宣告乙個函式指標變數,該指標指向返回值是 void * 型別,有兩個形參的函式,該函式的第乙個形參是字元變數,第二個形參是函式指標,指向乙個形參是空,返回值是 int 型的函式。

float  (*(*e[10])(int*))[5];

宣告乙個函式指標陣列,該陣列中的每乙個元素指向乙個函式,該函式的形參是 int *型別,返回值是乙個陣列指標,該指標指向乙個float 型陣列。

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 ...