C語言變數理解

2021-07-30 12:23:56 字數 1139 閱讀 1349

資料型別:

資料型別的本質:固定大小的記憶體的別名

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 無符號整形 範圍 ...