斷斷續續學習C語言多年了,可能自學這種語言, 對我來說難度有點大...

1.變數和函式使用前需要宣告, 而宣告從執行結果上分為兩種

     A.宣告並建立變數  (定義性宣告, 分配記憶體)      B.只宣告變數 (引用性宣告)

     A例:int age;                                                    B例:extern int age;

     所以, 定義性宣告之後, 可以用&取到物件的地址(指標)

     相類似的, 函式宣告也有引用性函式宣告和定義性函式宣告

2. C語言使用分號做為語句的結尾, 可以出現在 1變數宣告尾部, 2函式引用性宣告尾部, 3<型別定義>尾部, 4表示式語句5選擇語句6迴圈語句 的尾部

    變數宣告和函式引用性宣告, 還有型別定義, 都不是語句, 這裡只是為了方便在一起敘述
    

3.分號與逗號對應

使用分號做結尾, 有一個原因是分號前, 可能會出現逗號:

例: int a, b;

     struct rect {int width; int height;}  r_a, r_b ;     //定義性宣告, 會為r_a, r_b兩個變數分配記憶體

    struct point {int x; int y;};    //引用性宣告, 沒有變數需要分配記憶體, 這裡只是一個"自定義型別"的型別定義語句

    C++中, class person {public: char * name;};   //與前一行的結構宣告是相同情況, 只是一個"自定義型別"的型別定義語句

4.{}後面什麼時候有分號, 什麼時候沒有分號?   

   A: {}用做函式體起止符時, 也就是函式定義尾部, 不可以跟有分號, 而引用性函式宣告帶分號,

void a(), b();

a(){}
b(){}

   B:用做類<型別定義>, 結構<型別定義>的起止符時, 需要跟有分號, 語法允許在分號前,同時宣告使用逗號隔開的多個變數

   C:用做複合語句起止符時, 可能跟有分號, 也可能不可以跟有分號。 很明確的是, else前的}一定不可以有分號

      複合語句的{}, 可以認為不允許跟有分號。實際看到的分號, 多數是隸屬if語句的, 或是while語句的

5. 預處理指令, 標號都是單佔一行, 不可以跟有分號