201120 c 右左法則(閱讀複雜宣告必備)

2021-10-10 16:43:58 字數 651 閱讀 3295

here

理解複雜宣告可用的**「右左法則」

從變數名看起,先往右,再往左,碰到乙個圓括號就調轉閱讀的方向;括號內分析完就跳出括號,還是按先右後左**的順序,如此迴圈,直到整個宣告分析完。舉例:

int

(*func)

(int

*p);

首 先找到變數名func,外面有一對圓括號,而且左邊是乙個*號,這說明func是乙個指標;然後跳出這個圓括號,先看右邊,又遇到圓括號,這說明 (func)是乙個函式,所以func是乙個指向這類函式的指標,即函式指標,這類函式具有int型別的形參,返回值型別是int。

int

(*func[5]

)(int*

);

func 右邊是乙個運算子,說明func是具有5個元素的陣列;func的左邊有乙個*,說明func的元素是指標(注意這裡的不是修飾func,而是修飾 func[5]的,原因是運算子優先順序比高,func先跟結合)。跳出這個括號,看右邊,又遇到圓括號,說明func陣列的元素是函式型別的指 針,它指向的函式具有int*型別的形參,返回值型別為int。

也可以記住2個模式:

type ()(…)函式指標

type ()陣列指標

右左法則 複雜指標解析

第八章 右左法則 複雜指標解析 上一章費那麼多唇舌討論c語言的宣告,其實目的都是為了這一章,期望讀者通過對c語言宣告形式的詳細了解,樹立宣告巢狀的觀念,因為c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面...

右左法則 複雜指標解析

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

右左法則 複雜指標解析

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