C語言變數 型別判斷

2022-06-21 01:30:16 字數 1075 閱讀 1692

乙個變數有三個基本的要素,變數的名稱,變數的型別,變數的值。

所以int a = 10; 變數名為a,變數的儲存型別為int型,變數的值為10。

變數還有一些屬性如作用範圍和儲存型別。

變數作用範圍和儲存型別

作用範圍有區域性變數和全域性變數。區域性只在特定範圍內起作用。全部變數在整個程式執行期間起作用。

儲存型別有auto(自動),static(靜態),register(暫存器變數)

自動變數auto預設省略,int a = 10; 和 auto int a = 10;是一樣的。自動變數動態的分配記憶體空間,資料儲存在動態儲存區內。

靜態變數static,在函式初始化的時候就分配空間,而且資料儲存在靜態儲存區內,在程式執行期間,變數的儲存空間不會被釋放掉。

指標變數

指標變數除了上面的三要素以外,還有指標指向的資料型別。

int *p = &a;

變數名為p,變數的型別為指標型別,變數的值為a的位址,該指標變數指向的資料型別為int型別。

int (*p)(int,int); 指向函式的指標。

是乙個指標,該指標指向乙個函式入口。

判斷方法:p先和*結合,為乙個指標。後和(int,int)結合,指標指向返回值為int 的函式。

float *fun(int a); 返回指標值的函式。為乙個函式,形參為int型,返回值為乙個float型別指標。

判斷方法,fun和(int a)結合,為函式。函式返回值為float型別指標。

int *p[4]; 指標陣列。為乙個陣列,陣列裡面元素的儲存型別為指標型別。

判斷方法:p和[4]結合,為乙個陣列,陣列儲存的型別為int型別指標。

float (*pointer)[4] ;指向一維陣列的指標變數。為乙個指標,指標指向長度為4的陣列。

判斷方法:pointer和*結合,為乙個指標。該指標指向乙個長度為4的,存有float型別的陣列。

所以判斷乙個變數型別的時候,先看變數名的結合性,首先和什麼結合就是什麼型別變數,先和指標結合就是指標變數,和陣列結合就是陣列。然後在看該變數的其它屬性:指標有其指向的型別、陣列有其儲存型別,函式有返回型別和形參等等。

C語言型別判斷

型別判斷 宣告一種型別後,特別是複雜的型別時,判斷的方法為 以識別符號為起點 先右後左 碰到小括號 掉頭 所有路徑只走一次。舉例分析 int a 10 2 a為識別符號,往右走遇到中括號 說明a為陣列,對於陣列,關心的是陣列元素的個數和元素型別,繼續往右走可以發現元素個數為10個,型別呢?往右走遇到...

C語言變數型別

c語言變數型別 auto static external static external register auto 區域性變數 auto 變數是用堆疊 stack 方式占用儲存器空間,因此,當執行此區段是,系統會立即為這個變數分配儲存器空間,而程式執行完後,這個堆疊立即被系統收回 在大括號 內宣告...

C語言變數型別

c語言有豐富的資料型別和運算子,因此計算能力非常強大,計算過程中使用的值一般用變數來儲存。變數也是有分型別的,不同型別的變數有不同的儲存型別 不同的生命週期 不同的作用域,c語言也提供了一些關鍵字來設定變數的屬性 比如設定儲存型別 生命週期 1 變數的作用域 c語言根據變數作用域的不同,將變數分為區...