C語言變量 類型判斷


變量三要素:

一個變量有三個基本的要素,變量的名稱,變量的類型,變量的值。
所以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類型的數組。

 

所以判斷一個變量類型的時候,先看變量名的結合性,首先和什么結合就是什么類型變量,先和指針結合就是指針變量,和數組結合就是數組。然后在看該變量的其它屬性:指針有其指向的類型、數組有其存儲類型,函數有返回類型和形參等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM