c語言中什麼是變量

大家在初學C語言的時候對各種變量之間的區別以及存儲佈局可能都有很多疑問,造成在使用變量的時候可能會遇到錯誤的地方。下面是應屆畢業生小編爲大家整理的關於c語言的介紹和分類,希望可以幫到大家哦。

c語言中什麼是變量

 c語言的變量特性:

第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲的數據取值範圍,這類似於我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數據存儲安全,還能有效的節約系統資源;

第二、變量的作用範圍必須清楚,C語言最基本的功能單元是函數,在函數內部使用的變量是私有變量,只能在函數內部使用。多個函數組成一個程序的功能模塊,並安置在某一個C文件中,在這些函數的頭部定義的變量是靜態變量(局部變量),這種類型的變量模塊內部的函數都可以訪問。如果在模塊內部聲明變量,並在該模塊的頭文件中導出,該類型變量就是全局變量,全局變量在整個工程中的所有函數都可以訪問;

第三、變量佔用的RAM資源,私有變量是可以釋放的,靜態變量與全局變量是不可以釋放的。也就是說在程序運行的整個過程中,私有變量佔用資源可以供不同的.函數重複利用,而靜態變量與全局變量是完全被佔用不能重複利用的;

第四、變量可以存放常數,但因爲單片機RAM資源有限,強烈建議不要用變量存放常量,而是在資源相對豐富的Flash ROM中存放常量;

第五、局部變量與全局變量對於函數來說,訪問非常方便,但缺點顯而易見:訪問的函數越多,數據的安全性越低,一旦出現數據異常,很難排除問題。所以,請儘量減少局部變量與全局變量的使用;

第六、函數的型參個數儘量減少,這樣型參只會佔用通用寄存器組來完成參數傳遞工作。如果參數過多,編譯器可能會被迫分配佔用RAM資源,這樣不但參數傳遞效率變低,同時還會導致RAM資源浪費;

  c語言變量的分類

全局變量的作用範圍是整個程序(如果程序是多個文件,必須在其他的文件中說明)。

靜態變量的作用範圍要看靜態變量的位置,如果在函數裏,則作用範圍 就是這個函數。

靜態變量又分爲靜態全局變量和靜態局部變量。

靜態全局變量,只在本文件可以用,雖然整個程序包含多個文件,但靜態全局變量只能用在定義它的那個文件裏,卻不能用在程序中的其他文件裏。

它是定義存儲因型爲靜態型的外部變量,其作用域是從定義點到程序結束,所不同的是存儲類型決定了存儲地點,靜態型變量是存放在內存的數據區中的,它們在程序開始運行前就分配了固定的字節,在程序運行過程中被分配的字節大小是不改變的,只有程序運行結束後,才釋放所佔用的內存。

全局變量是沒有定義存儲類型的外部變量,其作用域是從定義點到程序結束,省略了存儲類型符,系統將默認爲自動型。

自動型變量存放在堆棧區中,堆棧區也是內存中一部分,該部分內存在程序運行中是重複使用的。

按存儲區域分,全局變量、靜態全局變量和靜態局部變量都存放在內存的靜態存儲區域,局部變量存放在內存的棧區。

按作用域分,全局變量在整個工程文件內都有效;靜態全局就量只在定義它的文件內有效;靜態局部變量只在定義它的函數內有效,只是程序僅分配一次內存,函數返回後,該變量不會消失;局部變量在定義它的函數內有效,但是函數返回後失效。

全局變量和靜態變量如果沒有手工初始化,則由編譯器初始化爲0。局部變量的值不可知,所以一般在定義的時候一定要賦初值。