標題 [筆記] 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 發表