資料型別:
資料型別的本質:固定大小的記憶體的別名
1byte
char
1個byte的記憶體用char來表示
2byte
short
2個byte的記憶體用short來表示
4byte
int4個byte的記憶體用int來表示
變數:
變數的本質:變數是一段實際連續儲存空間的別名,程式中通過變數來申請並命名儲存空間,通過變數的名字可以使用儲存空間。
變數的屬性:c語言中的變數可以有自己的屬性,在定義變數的時候可以加上「屬性」關鍵字,「屬性」關鍵字指明變數的特有意義
auto即c語言中區域性變數的預設屬性
編譯器預設所有的區域性變數都是auto的,指明該變數是在程式的棧上面分配空間的
static關鍵字指明變數的「靜態」屬性
static修飾的區域性變數儲存在程式的靜態區分配空間,static關鍵字同時具有「作用域限定符」的意義
作用域限定符
:static修飾的全域性變數作用域只在宣告的檔案中,只能在該檔案中被呼叫
static修飾的函式作用域只在宣告的檔案中,也就是只在該檔案中可以被呼叫,其他檔案中不能被呼叫
register關鍵字指明將變數儲存於暫存器中
register只是請求暫存器變數,但不一定請求成功,register指明的變數的長度必須是cpu暫存器可以接受的值
不能用&運算子獲取register變數的位址,&只能取記憶體中的位址,因為暫存器不屬於記憶體
暫存器變數只可能是區域性變數,暫存器變數用在對實時性要求非常高的系統當中。
**************************
小結:變數用來標識一段連續的記憶體,而變數前面的資料型別用來標識這段連續記憶體的長度。
例如: int a=13; 表示用一段記憶體來儲存資料13,並為該段記憶體起名為a,而該段記憶體的長度則為4個byte(int型別)。
auto 指明的變數儲存在程式的棧中,預設屬性
static 指明的變數在程式的靜態區中分配空間
register
指明的變數是向編譯器請求儲存在cpu暫存器中
C 中變數的理解 其它語言通用
關於變數的問題,其實可以看成是乙個入住賓館的問題,對應的變數名即為房間號,定義的變數型別即為入住賓館的房間型別是標準間 單人間 雙人間 還是 套房等。string name 這裡的string即變數的型別 賓館中的房間型別 name即變數的名稱 賓館中的房間號如122 632 string name...
對c語言普通變數和指標變數的理解
一 普通變數和的本質區別 在說到普通變數和指標變數的區別時,我更喜歡從乙個更高的視角去看待這兩者。首先來說,這兩者都是變數,既然是變數,就會包含位址和值這兩部分,例如int a 用 a獲得該變數的位址,用a獲得該變數的值 普通變數和指標變數的區別就是,這兩種 變數的值的所表示的意義不同,一般來說,普...
C語言 變數
整形變數的定義 有符號 int a int a 有符號整形 範圍 0 2 32 long int a long a 有符號長整形 範圍 0 2 32 short ing a short a 有符號短整型 範圍 0 2 16 無符號unsigned int a unsigned a 無符號整形 範圍 ...