C語言中變數的宣告與分號的使用
斷斷續續學習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. 預處理指令, 標號都是單佔一行, 不可以跟有分號