在一個函數內部定義的變量是內部變量,它只在本函數范圍內有效,也就是說只有在本函數內才能使用它們,在此函數以外是不能使用這些變量的。這稱為“局部變量”。
注意
例如,上面在f1函數中定義了變量b和c,倘若在f2函數中也定義變量b和c,它們在內存中占不同的單元,互不混淆。
全局變量
在函數內定義的變量是局部變量,而在函 數之外定義的變量稱為外部變量,外部變 量是全局變量(也稱全程變量)。
動態存儲
定義
-
動態存儲方式則是在程序運行期間根據需要進行動態的分配存儲空間的方式。
靜態存儲
定義
所謂靜態存儲方式是指在程序運行開始時由系統分配固定的存儲空間的方式。
static
static可定義靜態存儲(放於子函數時,保持上次調試結束后的原值,不會進行銷毀)
用於保持某些固定值等。
注意:若在定義時,不賦初值,系統會默認值為0;
Eg: 依次打出1~5的階乘數;
register variable
為提高執行效率,C語言允許將局部變量的值放在CPU中的寄存器中,需要用時直接從寄存器取出參加運算,不必再到內存中去存取。(用於某個變量多次使用,提高執行效率)
extern outside variable
其他
對自動變量來說,如果不賦初直則它的直是一個不確定的值
原因:由於每次函數調用結束后存儲單元已釋放,下次調用時又重新另分配存儲單元,而所分配的單元中的值是不確定的。