變數(variable)可以理解成一塊記憶體區域,通過變數名,可以參考這塊記憶體區域,獲取里面存盤的值,
變數名
識別符號(identifier)命名有嚴格的規范,
- 只能由字母、數字和下劃線(
_)組成, - 不能以數字開頭,
- 長度不能超過63個字符,
- 不能使用關鍵字和保留字,
auto, break, case, char, const, continue, default, do, double,
else, enum, extern, float, for, goto, if, inline, int, long,
register, restrict, return, short, signed, sizeof, static, struct,
switch, typedef, union, unsigned, void, volatile, while
- 兩個下劃線開頭 的變數名,以及一個 下劃線 + 大寫英文字母開頭 的變數名,也是系統保留的,不能起,
變數宣告
C 語言的變數,必須先宣告后使用,如果一個變數沒有宣告,就直接使用,會報錯,
宣告變數時,必須把變數的型別告訴編譯器,
int height; // 宣告了變數 height,并且指定型別為 int(整數),
變數賦值
C 語言會在變數宣告時,就為它分配記憶體空間,但是不會清除記憶體里面原來的值,
這導致宣告變數以后,變數會是一個隨機的值,所以變數一定要賦值以后才能使用,
int num = 42;
num = 43;
int x = 1, y = 2; // 多個相同型別變數的賦值,可以寫在同一行,
賦值運算式有回傳值,等于等號右邊的值,
int x;
printf("%i", x = 2); // 輸出 2
C 語言有左值(left value)和右值(right value)的概念,
左值是可以放在賦值運算子左邊的值,一般是變數;右值是可以放在賦值運算子右邊的值,一般是具體的值,
變數作用域
作用域(scope)指的是變數生效的范圍,
作用域分類
C 語言的變數作用域主要有兩種:檔案作用域(file scope)和塊作用域(block scope),
- 檔案作用域(file scope)
在原始碼檔案頂層宣告的變數,從宣告的位置到檔案結束都有效,
- 塊作用域(block scope)
由大括號({})組成的代碼塊,它形成一個單獨的作用域,
凡是在塊作用域里面宣告的變數,只在當前代碼塊有效,代碼塊外部不可見,
int a = 12;
if (a == 12) {
int b = 99;
printf("%d %d\n", a, b); // 12 99
}
printf("%d\n", a); // 12
printf("%d\n", b); // 出錯,變數 b 是在if代碼塊里面宣告的,所以對于大括號外面的代碼,這個變數是不存在的,
作用域嵌套
代碼塊可以嵌套,內層代碼塊可以使用外層宣告的變數,但外層不可以使用內層宣告的變數,
如果內層的變數與外層同名,那么會在當前作用域 覆寫 外層變數,
{
int i = 10;
{
int i = 20;
printf("%d\n", i); // 20
}
printf("%d\n", i); // 10
}
參考 C 語言教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488670.html
標籤:C
上一篇:C語言基本語法
