如何讀C 指標複雜宣告?

2021-08-20 20:12:50 字數 640 閱讀 8180

很多人都會被c++指標的複雜宣告搞混了。其實,讀c++指標宣告的過程,我們可以遵循2個原則:1、從名字開始,右->左->右->左->右這樣來讀;2、不斷對指標內容進行補完(對於指標,我們要知道指標的型別,知道了指標的型別也就是補完了;對於函式,我們要知道函式的引數和返回值,知道了也算是補完了)。

舉個例子:float (*(* fp)(int,int,int))(int)

1、首先從fp開始。我們知道了這個變數的名字是fp;

2、讀fp的右邊,是),那也就是沒內容;

3、讀fp左邊一直讀到左括號,是(*,也就說明fp是個指標;

4、再往右讀,是(int,int,int),說明fp指標指向乙個引數列表是(int,int,int)的函式;

5、再往左讀,是*,說明fp指標指向乙個引數列表是(int,int,int),返回值是個指標的函式;

6、再往右讀,是),那也就是沒內容;

7、往左讀到(,沒內容;

8、往右讀,是(int),說明fp指標指向乙個引數列表是(int,int,int),返回值是個函式指標,指向乙個引數列表為(int)的函式的函式;

9、再往左讀,是float,說明fp指標指向乙個引數列表是(int,int,int),返回值是個函式指標,指向乙個引數列表為(int),返回值為float的函式的函式;

C語言複雜宣告

專家程式設計 第三章介紹了如何分析複雜的宣告,講的非常不錯。對於作者介紹的分析複雜宣告的方法,我沒有完全掌握,不過,我有我自己的一套方法來解析複雜的宣告,正所謂條條大道通羅馬,只要結果一樣,必須在乎過程呢。今天在網上找了幾個複雜的宣告,練練手 宣告的例子全部來自網路,原諒出處未詳 記下此文,作個標記...

C語言複雜宣告

問題1 宣告與函式 void 0 讓我們從兩個不同的途徑來詳細分析這個問題。分析 首先,最基本的函式宣告 void function paramlist 最基本的函式呼叫 function paramlist 鑑於問題中的函式沒有引數,函式呼叫可簡化為 function 其次,根據問題描述,可以知道...

複雜宣告 C語言

今天看了 c專家程式設計 裡的 分析c語言的宣告 一章,終於懂了c語言的複雜宣告是怎麼解析的。雖然在平時寫 的時候用到複雜宣告的情況幾乎沒有,這裡還是做乙個記錄,也是加深對c語言宣告的理解。以下規則來自 c專家程式設計 c語言宣告的優先順序規則 c.如果const或volatile 關鍵字的後面緊跟...