左右法則過程簡單分析C語言指標

2021-07-31 00:21:51 字數 896 閱讀 9005

右左法則:從最內部的括號開始閱讀,向右看,然後向左看.當碰到乙個括號時就掉轉閱讀的方向.括號內的所有內容都分析完畢就跳出括號的範圍.這樣繼續,直到整個宣告都被分析完畢.

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

1.     從變數名開始---fp1

2.     往右看,什麼也沒有,碰到),因此往左看,碰到乙個*----乙個指標

3.     跳出括號,碰到(int)----乙個帶乙個int引數的函式.

4.     往左看,發現乙個*----(函式)返回乙個指標.

5.     跳出括號,往右看,碰到[10]----乙個10元素的陣列

6.     往左看,發現乙個*----指標.

7.     往左看,發現乙個int----int型別.

總結:fp1被宣告成為乙個函式的指標,該函式返回指向指標陣列的指標.

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

1.     從變數名開始---arr

2.     往右看,發現是乙個陣列----乙個五個元素的陣列

3.     往左看,發現乙個*----指標.

4.     跳出括號,往右看,發現()----乙個不帶引數的函式.

5.     往左看,碰到*----(函式)返回乙個指標.

6.     跳出括號,向右發現()----不帶引數的函式.

7.     向左,發現*----(函式)返回乙個指標.

8.     繼續向左,發現int----int型別

總結 arr被宣告成為乙個函式的指標陣列,該函式返回指向函式指標的指標

C語言左右法則

c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。右左...

C語言左右法則

c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。筆者...

c指標解讀之左右法則

c指標宣告解讀之左右法則 c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的...