程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 如何解析復雜的C語言聲明

如何解析復雜的C語言聲明

編輯:C++入門知識

 *  * (*next) (); 


貫徹兩點:

  (*fun)();       

==(*fun)();

,而是的

 

C語言聲明的優先級規則

,然後依次讀取;

關鍵字的後面緊跟類型說明符(如int,long等),那麼它作用於類型說明符。在其他情況下,它作用於關鍵字左邊緊鄰的指針星號。

 *  * (*next) ();

”的策略。

剝?從語句的最左邊的標志符開始剝(上例為從next開始)。

剝?依照C語言的優先級規則一層層剝。

 *(* c[]) ( **p);

c[10]) (int **p);  最左邊的標志符是c,表示"c是一個什麼東東";

) (int **p);  和[10]結合,表示"c是一個長度為10的數組";

       ) (int **p);  和*結合,表示"這個數組存放著指針";

;  和(int **p)結合,表示"這個指針指向一個函數,函數的參數是二維指針";

                        ;  和 * 結合,表示"這個函數返回一個指針";

              ; 這個指針指向一個字符;

 

。如,所以像function()()和function()[]是非法的,不能出現。,像int (* function[])()是合法的,function[]()則是非法的。

參考文獻

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved