c語言中什么是變量
c語言中什么是變量
大家在初學(xué)C語言的時候?qū)Ω鞣N變量之間的區(qū)別以及存儲布局可能都有很多疑問,造成在使用變量的時候可能會遇到錯誤的地方。下面是應(yīng)屆畢業(yè)生小編為大家整理的關(guān)于c語言的介紹和分類,希望可以幫到大家哦。
(資料圖片僅供參考)
c語言中什么是變量 篇1
c語言的變量特性:
第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲的數(shù)據(jù)取值范圍,這類似于我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數(shù)據(jù)存儲安全,還能有效的節(jié)約系統(tǒng)資源;
第二、變量的作用范圍必須清楚,C語言最基本的功能單元是函數(shù),在函數(shù)內(nèi)部使用的變量是私有變量,只能在函數(shù)內(nèi)部使用。多個函數(shù)組成一個程序的功能模塊,并安置在某一個C文件中,在這些函數(shù)的頭部定義的變量是靜態(tài)變量(局部變量),這種類型的變量模塊內(nèi)部的函數(shù)都可以訪問。如果在模塊內(nèi)部聲明變量,并在該模塊的頭文件中導(dǎo)出,該類型變量就是全局變量,全局變量在整個工程中的所有函數(shù)都可以訪問;
第三、變量占用的RAM資源,私有變量是可以釋放的,靜態(tài)變量與全局變量是不可以釋放的。也就是說在程序運行的整個過程中,私有變量占用資源可以供不同的函數(shù)重復(fù)利用,而靜態(tài)變量與全局變量是完全被占用不能重復(fù)利用的;
第四、變量可以存放常數(shù),但因為單片機RAM資源有限,強烈建議不要用變量存放常量,而是在資源相對豐富的Flash ROM中存放常量;
第五、局部變量與全局變量對于函數(shù)來說,訪問非常方便,但缺點顯而易見:訪問的函數(shù)越多,數(shù)據(jù)的安全性越低,一旦出現(xiàn)數(shù)據(jù)異常,很難排除問題。所以,請盡量減少局部變量與全局變量的使用;
第六、函數(shù)的型參個數(shù)盡量減少,這樣型參只會占用通用寄存器組來完成參數(shù)傳遞工作。如果參數(shù)過多,編譯器可能會被迫分配占用RAM資源,這樣不但參數(shù)傳遞效率變低,同時還會導(dǎo)致RAM資源浪費;
c語言變量的分類
全局變量的作用范圍是整個程序(如果程序是多個文件,必須在其他的文件中說明)。
靜態(tài)變量的作用范圍要看靜態(tài)變量的位置,如果在函數(shù)里,則作用范圍就是這個函數(shù)。
靜態(tài)變量又分為靜態(tài)全局變量和靜態(tài)局部變量。
靜態(tài)全局變量,只在本文件可以用,雖然整個程序包含多個文件,但靜態(tài)全局變量只能用在定義它的那個文件里,卻不能用在程序中的其他文件里。
它是定義存儲因型為靜態(tài)型的外部變量,其作用域是從定義點到程序結(jié)束,所不同的是存儲類型決定了存儲地點,靜態(tài)型變量是存放在內(nèi)存的數(shù)據(jù)區(qū)中的,它們在程序開始運行前就分配了固定的字節(jié),在程序運行過程中被分配的字節(jié)大小是不改變的,只有程序運行結(jié)束后,才釋放所占用的內(nèi)存。
全局變量是沒有定義存儲類型的外部變量,其作用域是從定義點到程序結(jié)束,省略了存儲類型符,系統(tǒng)將默認為自動型。
自動型變量存放在堆棧區(qū)中,堆棧區(qū)也是內(nèi)存中一部分,該部分內(nèi)存在程序運行中是重復(fù)使用的。
按存儲區(qū)域分,全局變量、靜態(tài)全局變量和靜態(tài)局部變量都存放在內(nèi)存的靜態(tài)存儲區(qū)域,局部變量存放在內(nèi)存的棧區(qū)。
按作用域分,全局變量在整個工程文件內(nèi)都有效;靜態(tài)全局就量只在定義它的文件內(nèi)有效;靜態(tài)局部變量只在定義它的函數(shù)內(nèi)有效,只是程序僅分配一次內(nèi)存,函數(shù)返回后,該變量不會消失;局部變量在定義它的函數(shù)內(nèi)有效,但是函數(shù)返回后失效。
全局變量和靜態(tài)變量如果沒有手工初始化,則由編譯器初始化為0。局部變量的值不可知,所以一般在定義的時候一定要賦初值。
c語言中什么是變量 篇2
變量要有變量名,在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值。不同類型的變量其存儲單元的大小不同,變量在使用前必須定義。那么C語言變量的類型有哪些呢,一起來看看!
(一)整型變量
整型變量分為4種:基本型(int)、短整型(short int 或short)、長整型(long int 或 long)和無符號型(unsigned int ,unsigned short,unsigned long)。
不同的編譯系統(tǒng)對上述四種整型數(shù)據(jù)所占用的位數(shù)和數(shù)值范圍有不同的規(guī)定。
類型說明符
說明:
單詞signed來說明“有符號”(即有正負數(shù)之分),不寫signed也隱含說明為有符號,unsigned用來說明“無符號”(只表示正數(shù))。
(二)實型變量
C語言中,實型變量分為單精度類型( float )和雙精度類型( double )兩種。如:
float a , b ;
double m ;
在vc中,float 型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),double型數(shù)據(jù)占8個字節(jié)。單精度實數(shù)提供7位有效數(shù)字,雙精度實數(shù)提供15~16位有效數(shù)字。實型常量不分float型和double型,一個實型常量可以賦給一個float 型或double型變量,但變量根據(jù)其類型截取實型常量中相應(yīng)的有效數(shù)字。
注意:實型變量只能存放實型值,不能用整型變量存放實型值,也不能用實型變量存放整型值。
(三)字符變量
字符變量用來存放字符常量,定義形式:
char 變量名;
其中關(guān)鍵字char定義字符型數(shù)據(jù)類型,占用一個字節(jié)的存儲單元。
例:char cr1,cr2;
cr1= ‘A’ , cr2=‘B’ ;
將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中。例如,字符 ′A′ 的ASCII碼為65,在內(nèi)存中的存放形式如下:01000001
由于在內(nèi)存中字符以ASCII碼存放,它的存儲形式和整數(shù)的存儲形式類似,所以C語言中字符型數(shù)據(jù)與整型數(shù)據(jù)之間可以通用,一個字符能用字符的形式輸出,也能用整數(shù)的形式輸出,字符數(shù)據(jù)也能進行算術(shù)運算,此時相當(dāng)于對它們的ASCII碼進行運算。
c語言中什么是變量 篇3
一、變量的概念
程序設(shè)計就是讓計算機按照一定的指令來進行工作,可以說數(shù)據(jù)的處理是程序設(shè)計的主要任務(wù)。那么數(shù)據(jù)是怎么加入到計算機的內(nèi)存中呢?計算機最初的功能就是能夠存儲數(shù)據(jù)并處理數(shù)據(jù)的機器。那么數(shù)據(jù)是怎么加入到計算機的內(nèi)存中呢?在學(xué)習(xí)程序設(shè)計之前,很多學(xué)生對計算機的硬件設(shè)施都大概已經(jīng)很熟悉了。計算機的硬件設(shè)施中有一個區(qū)域是用來存儲數(shù)據(jù)的,計算機在工作的過程中會頻繁的從這個區(qū)域讀入和讀出數(shù)據(jù)。要想讓計算機按照某些指令(程序)自動工作,首先必須把數(shù)據(jù)存儲到計算機的存儲空間中。在某種計算機語言中實現(xiàn)這種數(shù)據(jù)存儲功能的就是變量。變量就是計算機內(nèi)存中的某一個存儲單元。
二、變量的定義
C語言中變量在使用之前必須先對其進行定義,變量的定義的一般形式如下:【存儲類別】數(shù)據(jù)類型變量名;其中存儲類別是可以省略的。
1、存儲類別計算機的內(nèi)存一般分為三個部分:1)程序區(qū);2)靜態(tài)存儲區(qū);3)動態(tài)存儲區(qū);為了高效的發(fā)揮計算機的功能,不同類型的變量存放在不同的內(nèi)存區(qū)域。變量的存儲類別決定了變量中的數(shù)據(jù)在計算機內(nèi)存中的存儲位置。C語言中局部變量存放在動態(tài)存儲區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲區(qū)。
2、數(shù)據(jù)類型在用程序處理問題之前,首先必須確定用何種方式描述問題中所涉及到的數(shù)據(jù)。這個問題在C語言中是由數(shù)據(jù)類型來決定的。變量的本質(zhì)表現(xiàn)為在計算機中的存在時間和存儲空間。變量的數(shù)據(jù)類型是用來決定變量在計算機中占用內(nèi)存空間的大小。比如:整型數(shù)據(jù)在TC編譯系統(tǒng)中占用兩個字節(jié)的存儲空間。C語言變量的類型不僅確定了數(shù)據(jù)在計算機內(nèi)存中的存儲區(qū)域的大小,同時確定了該數(shù)據(jù)能夠參與的各種運算。任何一個C語言的變量必須有確定的數(shù)據(jù)類型,不管這個變量如何變化,變量的值都必須符合該變量數(shù)據(jù)類型的規(guī)定。
3、變量的名字通過以上介紹我們知道C語言中的變量就是計算機的.某個存儲單元,假設(shè)你給某個變量賦予了一個數(shù)值,對變量的處理其實就是對這個數(shù)據(jù)的處理。那么計算機是如何快速準(zhǔn)確的找到這個數(shù)據(jù)呢?計算機的內(nèi)存是以字節(jié)為單位進行劃分的。每個存儲單元都有自己的地址編號,就向賓館中房間的房間號一樣。計算機就是通過地址來準(zhǔn)確的確定數(shù)據(jù)的存儲位置。但是對于程序員特別是非專業(yè)計算機人士,如果用計算機內(nèi)存地址記錄數(shù)據(jù)是非常難操作的。
為了更好的掌控變量,C語言規(guī)定可以給每個變量其一個容易識別的名字。這個名字的命名規(guī)則遵循C語言的標(biāo)識符命名規(guī)則。C語言的變量名的命名在遵循C語言標(biāo)識符規(guī)則的前提下,原則上可以是任意長度字符的組合。但是目前很多的C語言編譯系統(tǒng)只能識別前31個字符,如果兩個變量的前31個字符相同,則編譯系統(tǒng)會認為這兩個變量時同一個變量。為了避免這種混淆的出現(xiàn)最好避免使用多余31個字符的變量名。變量的理解變量就是計算機中的某個存儲單元。定義某個變量本質(zhì)上就是向計算機申請一些存儲區(qū)域。這個存儲區(qū)域的大小由變量的數(shù)據(jù)類型決定,這個存儲區(qū)域的位置有變量的存儲類類別決定。給變量賦予某個數(shù)值,其實就是向該變量對應(yīng)的存儲單元讀入數(shù)據(jù),對變量的處理就是對這個存儲單元中的數(shù)據(jù)的處理。并且這個存儲單元中的數(shù)據(jù)在程序的運行期間是可以發(fā)生變化的。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。