右左法則:從最內部的括號開始閱讀,向右看,然後向左看.當碰到乙個括號時就掉轉閱讀的方向.括號內的所有內容都分析完畢就跳出括號的範圍.這樣繼續,直到整個宣告都被分析完畢.
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標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的...