c語(yǔ)言什么是變量變量的定義
c語(yǔ)言中常常用到變量,c語(yǔ)言中什么是變量呢?那么下面是學(xué)習(xí)啦小編整理的c語(yǔ)言變量的定義,歡迎閱讀。
c語(yǔ)言什么是變量
變量來(lái)源于數(shù)學(xué),是計(jì)算機(jī)語(yǔ)言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過(guò)變量名訪問(wèn)。在指令式語(yǔ)言中,變量通常是可變的;但在純函數(shù)式語(yǔ)言(如Haskell)中,變量可能是不可變(immutable)的。在一些語(yǔ)言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲(chǔ)空間的抽象(如在Java和Visual Basic中);但另外一些語(yǔ)言可能使用其它概念(如C的對(duì)象)來(lái)指稱這種抽象,而不嚴(yán)格地定義“變量”的準(zhǔn)確外延。
變量介紹
由于變量讓你能夠把程序中準(zhǔn)備使用的每一段數(shù)據(jù)都賦給一個(gè)簡(jiǎn)短、易于記憶的名字,因此它們十分有用。變量可以保存程序運(yùn)行時(shí)用戶輸入的數(shù)據(jù)(如使用InputBox函數(shù)在屏幕上顯示一個(gè)對(duì)話框,然后把用戶鍵入的文本保存到變量中)、特定運(yùn)算的結(jié)果以及要在窗體上顯示的一段數(shù)據(jù)等。簡(jiǎn)而言之,變量是用于跟蹤幾乎所有類型信息的簡(jiǎn)單工具。
變量聲明后沒(méi)有賦值的話 編譯器會(huì)自動(dòng)提示并賦予默認(rèn)值
變量是一種使用方便的占位符,用于引用計(jì)算機(jī)內(nèi)存地址,該地址可以存儲(chǔ)Script運(yùn)行時(shí)可更改的程序信息。例如,可以創(chuàng)建一個(gè)名為Click Count的變量來(lái)存儲(chǔ)用戶單擊Web頁(yè)面上某個(gè)對(duì)象的次數(shù)。使用變量并不需要了解變量在計(jì)算機(jī)內(nèi)存中的地址,只要通過(guò)變量名引用變量就可以查看或更改變量的值。在VB Script中只有一個(gè)基本數(shù)據(jù)類型,即Variant,因此所有變量的數(shù)據(jù)類型都是Variant。
聲明變量
聲明變量的一種方式是使用Dim語(yǔ)句、Public語(yǔ)句和Private語(yǔ)句在Script中顯式聲明變量。例如:
Dim Degrees Fahrenheit
聲明多個(gè)變量時(shí),使用逗號(hào)分隔變量。例如:
Dim Top, Bottom, Left, Right
另一種方式是通過(guò)直接在Script中使用變量名這一簡(jiǎn)單方式隱式聲明變量。這通常不是一個(gè)好習(xí)慣,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行Script時(shí)出現(xiàn)意外的結(jié)果。因此,最好使用Option Explicit語(yǔ)句顯式聲明所有變量,并將其作為Script的第一條語(yǔ)句。
命名規(guī)則
首先,我們必須給變量取一個(gè)合適的名字,就好像每個(gè)人都有自己的名字一樣,否則就難以區(qū)分了。 在VB6中,變量的命名必須遵循以下規(guī)則:
(1)變量名必須以字母或下劃線打頭,名字中間只能由字母、數(shù)字和下劃線“_”組成;最后一個(gè)字符可以是類型說(shuō)明符;
(2)變量名的長(zhǎng)度不得超過(guò)255個(gè)字符;
(3)變量名在有效的范圍內(nèi)必須是唯一的。有效的范圍就是引用變量可以被程序識(shí)別、使用的作用范圍——例如一個(gè)過(guò)程、一個(gè)窗體等等。有關(guān)引用變量作用范圍的內(nèi)容,將在以后介紹。
(4)變量名不能是VB中的保留字(關(guān)鍵字),也不能是末尾帶類型說(shuō)明符的保留字,但可以把保留字嵌入變量名, 關(guān)鍵字是指VB6語(yǔ)言中的屬性、事件、方法、過(guò)程、函數(shù)等系統(tǒng)內(nèi)部的標(biāo)識(shí)符。如已經(jīng)定義的詞(if、endif、while、loop等)、函數(shù)名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的?!±纾骸trName1,intMax_Length,intLesson,strNo3等是合法的變量名,而A&B,all right,3M,_Number等是非法的變量名。
注意:
(1)變量名在VB中是不區(qū)分大小寫(xiě)的(如ABC、aBc、abc等都是一樣的)。C語(yǔ)言中區(qū)分大小寫(xiě)。不同的語(yǔ)言有不同的規(guī)則。
(2)定義和使用變量時(shí),通常要把變量名定義為容易使用閱讀和能夠描述所含數(shù)據(jù)用處的名稱,而不要使用一些難懂的縮寫(xiě)如A或B2等。例如:假定正在為水果鋪編一個(gè)銷(xiāo)售蘋(píng)果的軟件。我們需要兩個(gè)變量來(lái)存儲(chǔ)蘋(píng)果的價(jià)格和銷(xiāo)量。此時(shí),可以定義兩個(gè)名為Apple_Price和Apple_Sold的變量。每次運(yùn)行程序時(shí),用戶就這兩個(gè)變量提供具體值,這樣看起來(lái)就非常直觀。具體方法是:通過(guò)用一個(gè)或多個(gè)單詞組成有意義的變量名來(lái)使變量意義明確。例如,變量名SalesTaxRate就比Tax或Rate的意義明確得多。
(3)根據(jù)需要混合使用大小寫(xiě)字母和數(shù)字。一個(gè)合理協(xié)議是,變量中每個(gè)單詞的第一個(gè)字母大寫(xiě),例如:DateOfBirth。
(4)另一個(gè)合理協(xié)議是,每個(gè)變量名以兩個(gè)或三個(gè)字符縮寫(xiě)開(kāi)始,這些字符縮寫(xiě)對(duì)應(yīng)于變量要存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型。例如,使用strName來(lái)說(shuō)明Name變量保存字符串型數(shù)據(jù)。這種命名方法叫匈牙利命名法
格式 變量類型 + 變量名字
比如剛才說(shuō)的strname "str" 是"string"的縮寫(xiě) "Name" 則是變量名字
注意 變量類型都是小寫(xiě) 而且變量名字是開(kāi)頭大寫(xiě)
C# 命名方法
1
stringstrName
VB 命名方法
1
DimstrNameasString
雖然無(wú)須過(guò)多地關(guān)注字符縮寫(xiě)的細(xì)節(jié),但以后還是需要看一下這方面的約定。在Visual Basic聯(lián)機(jī)幫助和許多Visual Basic高級(jí)編程的書(shū)籍中都可以找到這一約定的細(xì)節(jié)。
存活期
變量存在的時(shí)間稱為存活期。Script級(jí)變量的存活期從被聲明的一刻起,直到Script運(yùn)行結(jié)束。對(duì)于過(guò)程級(jí)變量,其存活期僅是該過(guò)程運(yùn)行的時(shí)間,該過(guò)程結(jié)束后,變量隨之消失。在執(zhí)行過(guò)程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間??梢栽诓煌^(guò)程中使用同名的局部變量,這是因?yàn)槊總€(gè)局部變量只被聲明它的過(guò)程識(shí)別。
作用域
變量的作用域由聲明它的位置決定。如果在過(guò)程中聲明變量,則只有該過(guò)程中的代碼可以訪問(wèn)或更改變量值,此時(shí)變量具有局部作用域并被稱為過(guò)程級(jí)變量。如果在過(guò)程之外聲明變量,則該變量可以被Script中所有過(guò)程所識(shí)別,稱為Script級(jí)變量,具有Script級(jí)作用域。
生存期
是指變量的分配與回收的全過(guò)程,
類型
屬性變量和用戶自己建立的變量。
當(dāng)我們?cè)诖绑w中設(shè)計(jì)用戶界面時(shí),vb6會(huì)自動(dòng)為產(chǎn)生的對(duì)象(包括窗體本身)創(chuàng)建一組變量,即屬性變量,并為每個(gè)變量設(shè)置其缺省值。這類變量可供我們直接使用,比如引用它或給它賦新值。
用戶也可以創(chuàng)建自己的變量,以便存放程序執(zhí)行過(guò)程中的臨時(shí)數(shù)據(jù)或結(jié)果數(shù)據(jù)等等。在程序中,這樣的變量是非常需要的。下面就介紹這類變量的創(chuàng)建和使用方法。
聲明變量
變量在使用前,必須在代碼中進(jìn)行聲明,即創(chuàng)建該變量。
在使用變量之前,大多數(shù)語(yǔ)言通常首先需要聲明變量。就是說(shuō),必須事先告訴編譯器在程序中使用了哪些變量,及這些變量的數(shù)據(jù)類型以及變量的長(zhǎng)度。這是因?yàn)樵诰幾g程序執(zhí)行代碼之前編譯器需要知道如何給語(yǔ)句變量開(kāi)辟存儲(chǔ)區(qū),這樣可以優(yōu)化程序的執(zhí)行。
聲明變量有兩種方式分別是隱式聲明、顯式聲明。
隱式聲明:
變量可以不經(jīng)聲明直接使用,此時(shí)VB給該變量賦予缺省的類型和值。這種方式比較簡(jiǎn)單方便,在程序代碼中可以隨時(shí)命名并使用變量,但不易檢查。
顯式聲明:
用聲明語(yǔ)句創(chuàng)建變量。
強(qiáng)制顯式聲明變量:
為了避免寫(xiě)錯(cuò)變量名引起的麻煩,用戶可以規(guī)定,只要遇到一個(gè)未經(jīng)明確聲明就當(dāng)成變量的名字,VB都發(fā)出錯(cuò)誤警告。方法是----強(qiáng)制顯式聲明變量。要強(qiáng)制顯式聲明變量,只須在類模塊、窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入這條語(yǔ)句:
Option Explicit
這條語(yǔ)句是用來(lái)規(guī)定在本模塊中所有變量必須先聲明再使用,即不能通過(guò)隱式聲明來(lái)創(chuàng)建變量。在添加Option Explicit語(yǔ)句后,VB將自動(dòng)檢查程序中是否有未定義的變量,發(fā)現(xiàn)后將顯示錯(cuò)誤信息。
如果要自動(dòng)插入Option Explicit語(yǔ)句,用戶只要在“工具”菜單中選取“選項(xiàng)”命令,然后單擊“選項(xiàng)”對(duì)話框中的“編輯器”選項(xiàng)卡,再選中“要求變量聲明”選項(xiàng)
這樣VB就會(huì)在任何新模塊中自動(dòng)插入Option Explicit語(yǔ)句,但只會(huì)在新建立的模塊中自動(dòng)插入。所以對(duì)于已經(jīng)建立的模塊,只能用手工方法向現(xiàn)有模塊添加Option Explicit語(yǔ)句(只有再重新啟動(dòng)VB,這項(xiàng)功能才有效)。
理變量范圍
變量的范圍確定了能夠知曉該變量存在的那部分代碼。在一個(gè)過(guò)程內(nèi)部聲明變量時(shí),只有過(guò)程內(nèi)部的代碼才能訪問(wèn)或改變那個(gè)變量的值;它有一個(gè)范圍,對(duì)該過(guò)程來(lái)說(shuō)是局部的。但是,有時(shí)需要使用具有更大范圍的變量,例如這樣一個(gè)變量,其值對(duì)于同一模塊內(nèi)的所有過(guò)程都有效,甚至對(duì)于整個(gè)應(yīng)用程序的所有過(guò)程都有效。Visual Basic 允許在聲明變量時(shí)指定它的范圍。
存儲(chǔ)類型
我們?cè)诔绦蛑袝?huì)經(jīng)常定義一些變量來(lái)保存和處理數(shù)據(jù)。從本質(zhì)上看,變量代表了一段可操作的內(nèi)存,也可以認(rèn)為變量是內(nèi)存的符號(hào)化表示。當(dāng)程序中需要使用內(nèi)存時(shí),可以定義某種類型的變量。此時(shí)編譯器根據(jù)變量的數(shù)據(jù)類型分配一定大小的內(nèi)存空間。程序就可以通過(guò)變量名來(lái)訪問(wèn)對(duì)應(yīng)的內(nèi)存了。
如果說(shuō)變量的數(shù)據(jù)類型決定了對(duì)應(yīng)內(nèi)存的大小,那么存儲(chǔ)類型則影響著對(duì)應(yīng)內(nèi)存的使用方式。所謂使用方式,具體說(shuō)就是在什么時(shí)間、程序的什么地方可以使用變量,即變量的生命周期和作用域。
先了解一些基本常識(shí)。一、在程序運(yùn)行時(shí)內(nèi)存中有三個(gè)區(qū)域可以保存變量:靜態(tài)存儲(chǔ)區(qū)、棧(stack)和堆(heap)。二、根據(jù)變量定義的位置可分為全局變量(定義在函數(shù)體外的變量)和局部變量(定義在函數(shù)體內(nèi)的變量,包括形參)。
所有的全局變量和靜態(tài)局部變量(定義時(shí)使用關(guān)鍵字static)都保存在靜態(tài)存儲(chǔ)區(qū),其特點(diǎn)是:在編譯時(shí)分配內(nèi)存空間并進(jìn)行初始化。在程序運(yùn)行期間,變量一直存在,直到程序結(jié)束,變量對(duì)應(yīng)的內(nèi)存空間才被釋放。
而所有的非靜態(tài)局部變量(又稱為自動(dòng)變量)保存在棧(stack)中,其特點(diǎn)是:在變量所在的函數(shù)或模塊被執(zhí)行時(shí)動(dòng)態(tài)創(chuàng)建,函數(shù)或模塊執(zhí)行完時(shí),變量對(duì)應(yīng)的內(nèi)存空間被釋放。換句話說(shuō),函數(shù)或模塊每被執(zhí)行一次,局部變量就會(huì)重新被分配空間。如果變量定義時(shí)沒(méi)有初始化,那么變量中的值是隨機(jī)數(shù)。
所有用malloc分配的內(nèi)存(又稱為動(dòng)態(tài)內(nèi)存)都在堆(heap)中,其特點(diǎn)是:一般通過(guò)指針來(lái)訪問(wèn)動(dòng)態(tài)分配的內(nèi)存。即可以通過(guò)free來(lái)手動(dòng)釋放動(dòng)態(tài)內(nèi)存,也可以在程序結(jié)束時(shí)由系統(tǒng)自動(dòng)釋放。
以上討論的是變量的生命周期,下面來(lái)看作用域。作用域指的是變量的可見(jiàn)范圍,即在變量的生命周期內(nèi),程序的哪些部分可以使用該變量。
全局變量的作用域從定義點(diǎn)開(kāi)始一直到源文件的結(jié)束。如果要在定義點(diǎn)之前使用全局變量的話就需要使用關(guān)鍵字extern對(duì)作用域進(jìn)行擴(kuò)展。全局變量缺省是可以被其他文件引用的。如果希望僅限于本文件使用的話,需要在定義時(shí)使用關(guān)鍵字static。
對(duì)于局部變量來(lái)說(shuō),無(wú)論是靜態(tài)局部變量還是自動(dòng)變量,作用域都僅限于定義該變量的函數(shù)或模塊。
動(dòng)態(tài)內(nèi)存只要沒(méi)有被釋放就可以在程序的任何地方使用,前提是要知道動(dòng)態(tài)內(nèi)存的地址。
注:static加在全局變量前影響的是作用域,加在局部變量前影響的是生命周期。
變量類型
C語(yǔ)言中,變量分為全局變量和局部變量;也可以這樣分:自動(dòng)變量,靜態(tài)變量.前者是按變量作用范圍來(lái)分的,而后者是按變量存儲(chǔ)方式來(lái)分的.
如果按存儲(chǔ)占用空間來(lái)分,可以是整型變量,字符型變量,浮點(diǎn)型變量等.當(dāng)然還有數(shù)組,結(jié)構(gòu)體變量等.
C語(yǔ)言還有一個(gè)重要變量:指針變量.它存放的值是一個(gè)內(nèi)存地址.
操作系統(tǒng)變量
操作系統(tǒng)變量
C語(yǔ)言中變量名是有大小寫(xiě)之分的,如SUN與sun就是兩個(gè)不同的變量名。
另一點(diǎn),聲明變量時(shí),可以不用聲明就直接賦值來(lái)決定變量類型的語(yǔ)言如(javascript,flash cs3.0以前,等),這類語(yǔ)言變量的聲明通常被稱為弱類型,而如(c++等)必須先聲明,后使用,而且聲明時(shí)必須確定變量類型,這種就是嚴(yán)格的數(shù)據(jù)類型.
變量有兩種類型:屬性變量和用戶自己建立的變量。
JavaScript
變量
正如代數(shù)一樣,JavaScript 變量用于保存值或表達(dá)式。
可以給變量起一個(gè)簡(jiǎn)短名稱,比如 x,或者更有描述性的名稱,比如 length。
JavaScript 變量也可以保存文本值,比如 carname="Volvo"。
變量名稱的規(guī)則
變量對(duì)大小寫(xiě)敏感(y 和 Y 是兩個(gè)不同的變量)
變量必須以字母或下劃線開(kāi)始
注釋:由于 JavaScript 對(duì)大小寫(xiě)敏感,變量名也對(duì)大小寫(xiě)敏感。
實(shí)例
在腳本執(zhí)行的過(guò)程中,可以改變變量的值。可以通過(guò)其名稱來(lái)引用一個(gè)變量,以此顯示或改變它的值。
本例為您展示原理。
聲明(創(chuàng)建) JavaScript 變量
在 JavaScript 中創(chuàng)建變量經(jīng)常被稱為“聲明”變量。
您可以通過(guò) var 語(yǔ)句來(lái)聲明 JavaScript 變量:
var x; var carname;
var x; var carname;
在以上聲明之后,變量并沒(méi)有值,不過(guò)您可以在聲明它們時(shí)向變量賦值:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
注釋:在為變量賦文本值時(shí),請(qǐng)為該值加引號(hào)。
向 JavaScript 變量賦值
通過(guò)賦值語(yǔ)句向 JavaScript 變量賦值:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
變量名在 = 符號(hào)的左邊,而需要向變量賦的值在 = 的右側(cè)。
在以上語(yǔ)句執(zhí)行后,變量 x 中保存的值是 5,而 carname 的值是 Volvo。
向未聲明的 JavaScript變量賦值
如果您所賦值的變量還未進(jìn)行過(guò)聲明,該變量會(huì)自動(dòng)聲明。
這些語(yǔ)句:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
與這些語(yǔ)句的效果相同:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
重新聲明 JavaScript變量
如果您再次聲明了 JavaScript 變量,該變量也不會(huì)丟失其原始值。
var x = 5; var x;
var x = 5; var x;
在以上語(yǔ)句執(zhí)行后,變量 x 的值仍然是 5。在重新聲明該變量時(shí),x 的值不會(huì)被重置或清除。
JavaScript算術(shù)
正如代數(shù)一樣,您可以使用 JavaScript 變量來(lái)做算術(shù):
y = x - 5; z = y + 5;
y = x - 5; z = y + 5
php中的變量類型
PHP 中的變量:變量用于存儲(chǔ)值,比如數(shù)字、文本字符串或數(shù)組。
一旦設(shè)置了某個(gè)變量,我們就可以在腳本中重復(fù)地使用它。
PHP 中的所有變量都是以 $ 符號(hào)開(kāi)始的。
在 PHP 中設(shè)置變量的正確方法是:
$var_name = value;PHP 的入門(mén)者會(huì)忘記在變量的前面的 $ 符號(hào)。如果那樣做的話,變量將是無(wú)效的。
我們創(chuàng)建一個(gè)存有字符串的變量,和一個(gè)存有數(shù)值的變量:
不必向 PHP 聲明該變量的數(shù)據(jù)類型。
根據(jù)變量被設(shè)置的方式,PHP 會(huì)自動(dòng)地把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型。
在強(qiáng)類型的編程語(yǔ)言中,您必須在使用前聲明變量的類型和名稱。
在 PHP 中,變量會(huì)在使用時(shí)被自動(dòng)聲明。
php 中的變量用一個(gè)美元符號(hào)后面跟變量名來(lái)表示。變量名是區(qū)分大小寫(xiě)的。
變量名與 php 中其它的標(biāo)簽一樣遵循相同的規(guī)則。一個(gè)有效的變量名由字母或者下劃線開(kāi)頭,后面跟上任意數(shù)量的字母,數(shù)字,或者下劃線。按照正常的正則表達(dá)式,它將被表述為:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*'。
注: 在此所說(shuō)的字母是 a-z,A-Z,以及 ASCII 字符從 127 到 255(0x7f-0xff)。
php 3 中,變量總是傳值賦值。那也就是說(shuō),當(dāng)將一個(gè)表達(dá)式的值賦予一個(gè)變量時(shí),整個(gè)原始表達(dá)式的值被賦值到目標(biāo)變量。這意味著,例如,當(dāng)一個(gè)變量的值賦予另外一個(gè)變量時(shí),改變其中一個(gè)變量的值,將不會(huì)影響到另外一個(gè)變量。有關(guān)這種類型的賦值操作,請(qǐng)參閱表達(dá)式一章。
php 4 提供了另外一種方式給變量賦值:引用賦值。這意味著新的變量簡(jiǎn)單的引用(換言之,“成為其別名” 或者 “指向”)了原始變量。改動(dòng)新的變量將影響到原始變量,反之亦然。這同樣意味著其中沒(méi)有執(zhí)行復(fù)制操作;因而,這種賦值操作更加快速。不過(guò)只有在密集的循環(huán)中或者對(duì)很大的數(shù)組或?qū)ο筚x值時(shí)才有可能注意到速度的提升。
使用引用賦值,簡(jiǎn)單地將一個(gè) & 符號(hào)加到將要賦值的變量前(源變量)。例如,下列代碼片斷將輸出“My name is Bob”兩次:
有一點(diǎn)重要事項(xiàng)必須指出,那就是只有有名字的變量才可以引用賦值。
變量的命名規(guī)則:
變量名必須以字母或下劃線 "_" 開(kāi)頭。
變量名只能包含字母數(shù)字字符以及下劃線。
變量名不能包含空格。如果變量名由多個(gè)單詞組成,那么應(yīng)該使用下劃線進(jìn)行分隔(比如 $my_string),或者以大寫(xiě)字母開(kāi)頭(比如 $myString)。[1]
看了c語(yǔ)言什么是變量的人還看了:
8.如何定義全局變量