C語言描述變數型別

2021-09-11 15:59:41 字數 736 閱讀 3257

先來看乙個變數的宣告:

int (*(*a)())[6];
大家會不會覺得這個有問題呢?可以通過編譯哦。

好了,現在開始上乾貨

乙個宣告可以這樣表示:

型別 表示式;
方法:通過計算表示式來確定型別。變數經過表示式的運算,得到了宣告前面的型別,以此,來推斷變數型別。

是不是還是一臉懵,從簡單的開始

int a;//這個宣告沒啥好說的

int *a;// 表示式是*a,通過*a(間接引用),得到了int型,所以a是乙個整型指標

int **a;//經過兩次間接引用,所以a是二級指標

int *a();//宣告函式

把()當作函式呼叫,很顯然,a就是乙個函式

int (*a)();
先間接訪問引用a,然後呼叫函式,得到整型,所以a是乙個「返回值為整型的函式的函式指標」

int **(*a[6])();
a是乙個指標陣列,然後經過呼叫函式,返回二級指標,所以a的型別描述為「a是指向返回值為二級指標的函式指標陣列」

int (*(*a)())[6];
a是乙個函式指標,返回的值經過間接引用之後是乙個整型陣列,所以a的型別描述為「a是指向返回值為int型陣列的指標的函式指標」

C語言變數型別

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

C語言變數型別

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

C語言變數型別

c 語言中常用的變數型別包括以下幾類 區域性變數 自動變數 外部變數 全域性變數 靜態變數和暫存器變數 暫存器變數不常用,因此不做整理 1 區域性變數 區域性變數也稱為自動變數,是在函式內或程式塊內定義的變數,是一種 臨時 的變數,隨著函式 或程式塊 的執行而生成,隨著函式 或程式塊 的退出而消失。...