2012年3月19日 星期一

[筆記] C 語言複雜型別閱讀規則

 作者  ie945167 (龍蝦)                                      站內  Lobster
 標題  [筆記] C 語言複雜型別閱讀規則
 時間  2012/03/19 Mon 00:55:42
───────────────────────────────────────

原文出處:
    http://ticore.blogspot.com/2012/03/c-language-complex-declartation.html

文章分享

大家好,我是 Ticore
剛開始接觸 C 語言,發現它的型別宣告真是超級複雜
除了一般型別之外,還有指標、陣列、函式指標
混在一起時真的是非常難懂
書上也沒找到一個系統性的閱讀規則

不斷的嘗試錯誤之後,歸納出來一些心得
首先是 C 語言宣告位置的一些限制


1. 所有型別符號 type specifier 只能放在變數名稱 identifier 左邊,
    e.g. int id;

2. 指標宣告 pointer declarator 只能放在變數名稱 identifier 左邊,
    e.g. int * id;

3. 陣列宣告 array declarator 只能放在變數名稱 identifier 右邊,
    e.g. int id [10];

4. 函式呼叫 function declarator 只能放在變數名稱 identifier 右邊,
    e.g. void id ( int i );

5. 群組運算子 grouping operator 必須包含變數名稱 identifier,
    e.g. int ( * id ) [10];

接下來是閱讀規則


1. 先以變數名稱 identifier 為基準,分為左半部與右半部

2. 先看 grouping 最外層的左半部,再看右半部

3. 左半部是從左到右閱讀,右半部是從右到左閱讀

4. 往內一層 grouping 閱讀,一樣是先看左半部,再看右半部

以此類推...


例子:
    見 blog 文章


--
▅◣ Origin:  謠 言 報  bbs.csie.fju.edu.tw
▋◤ Author: ie945167 從 219-84-254-78-adsl-kao.dynamic.so-net.net.tw 發表

沒有留言:

張貼留言