① c語言變數命名規則
變數名由a-z,A-Z,0-9,_(大小寫字母,數字,下劃線)組成,並且開頭不能為0-9(數字)
變數命名方面流行的有以下幾種:
一、匈牙利命名法
這種命名法的出發點是把變數名按:屬性+類型+對象描述的順序組合起來,以使程序員作變數時對變數的類型和其它屬性有直觀的了解,下面是HN變數命名規范。
屬性部分:
g_ 全局變數
c_ 常量
m_ c++類成員變數
s_ 靜態變數
類型部分:
數組 a
指針p
函數fn
無效v
句柄h
長整型l
布爾b
浮點型(有時也指文件)f
雙字 dw
字元串 sz
短整型 n
雙精度浮點d
計數c(通常用cnt)
字元ch(通常用c)
整型i(通常用n)
位元組by
字w
實型r
無符號u
描述部分:
最大Max
最小Min
初始化Init
臨時變數T(或Temp)
源對象Src
目的對象Dest
舉例:
hwnd : h 是類型描述,表示句柄, wnd 是變數對象描述,表示窗口,所以 hwnd 表示窗口句柄;
pfnEatApple : pfn 是類型描述,表示指向函數的指針, EatApple 是變數對象描述,所以它表示指向 EatApple 函數的函數指針變數。
g_cch : g_ 是屬性描述,表示全局變數,c 和 ch 分別是計數類型和字元類型,一起表示變數類型,這里忽略了對象描述,所以它表示一個對字元進行計數的全局變數。
上面就是HN命名法的一般規則。
二、駝峰命名法
駝峰命名法的中心點在於每個單詞的開頭大寫,而駝峰命名法又可分為大駝峰和小駝峰,大駝峰表示所有單詞開頭都大寫,小駝峰表示第一個單詞開頭小寫,後面的單詞開頭大寫
大駝峰:EatSimpleApple
小駝峰:eatSimpleApple
一般大駝峰用於函數命名,小駝峰用於變數命名
當出現縮寫(如IP)時,如果縮寫在開頭,則若為大駝峰則全部大寫,小駝峰則全部小寫,若不在開頭,則全部大寫
大駝峰:IPAddIP
小駝峰:ipAddIP
不過也有將縮寫看作一般單詞的寫法:
大駝峰:IpAddIp
小駝峰:ipAddIp
三、帕斯卡命名法
帕斯卡命名法是指每個單詞之間用下劃線隔開,每個單詞都小寫(縮寫也一樣)
示例:eat_simple_apple
示例:ip_add_ip
② C語言變數的定義與使用
變數的存儲類別決定了變數中的數據在計算機內存中的存儲位置。C語言中局部變數存放在動態存儲區,全局變數或者靜態變數存放在靜態存儲區。下面是關於C語言變數的定義與使用,歡迎參考!
如果要為單片機控制系統編寫出高質量的C語言程序,合理的定義並使用變數是非常重要的。程序是用來處理數據的,而變數就是用來存儲數據的。每定義一個變數,編譯器就會在系統的RAM中分配一個物理存儲區域。在單片機控制系統中,RAM資源是非常有限的,作為單片機程序員,絕對不能隨意的定義變數,需要精打細算合理定義。為了實現這個目標,必須要對變數的多個特性有深刻的認識。
變數特性:
第一、變數定義要選擇恰到好處的類型,變數的類型直接決定了它所存儲的數據取值范圍,這類似於我們生活中使用的各種容器,選擇合適的變數類型,不但能保證數據存儲安全,還能有效的節約系統資源;
第二、變數的作用范圍必須清楚,C語言最基本的功能單元是函數,在函數內部使用的變數是私有變數,只能在函數內部使用。多個函數組成一個程序的功能模塊,並安置在某一個C文件中,在這些函數的頭部定義的變數是靜態變數(局部變數),這種類型的變數模塊內部的函數都可以訪問。如果在模塊內部聲明變數,並在該模塊的頭文件中導出,該類型變數就是全局變數,全局變數在整個工程中的所有函數都可以訪問;
第三、變數佔用的RAM資源,私有變數是可以釋放的,靜態變數與全局變數是不可以釋放的。也就是說在程序運行的整個過程中,私有變數佔用資源可以供不同的函數重復利用,而靜態變數與全局變數是完全被佔用不能重復利用的;
第四、變數可以存放常數,但因為單片機RAM資源有限,強烈建議不要用變數存放常量,而是在資源相對豐富的FlashROM中存放常量;
第五、局部變數與全局變數對於函數來說,訪問非常方便,但缺點顯而易見:訪問的函數越多,數據的安全性越低,一旦出現數據異常,很難排除問題。所以,請盡量減少局部變數與全局變數的使用;
第六、函數的型參個數盡量減少,這樣型參只會佔用通用寄存器組來完成參數傳遞工作。如果參數過多,編譯器可能會被迫分配佔用RAM資源,這樣不但參數傳遞效率變低,同時還會導致RAM資源浪費;
明確上述變數定義與使用特點後,在編寫程序的時候,一定要利用好這些特性並結合程序的特點,靈活的使用各種類型、各種作用范圍的變數,使程序在最大限度上得到優化,使系統性能提升至最優的狀態,才是我們嵌入式開發者的終極目標!
拓展:C語言入門學習
什麼人需要學習C語言?
從51JOB的統計數據來看,選擇C語言人才的企業多數以電子工程師、嵌入式工程師、硬體工程師、IOS工程師等為主,學歷本科以上相關專業,三年以上工作經驗,且外語水平要求至少四級以上。既然C語言學習者的就業門檻那麼高,為什麼還有很多人執著的去學習C語言呢?總結而言,無外乎以下幾點原由:
1)C語言不是面向對象語言。
因為這一點,任何學習C語言的人必須學會用函數思考問題。當你真正的去學習一門面向對象語言時,就會有C語言的函數學習基礎去對比。這會使學習面向對象編程更容易理解和更有樂趣。
2)用C編程就像進行智力體操。
你要顧及到每一件事情,而這在很多其他語言中他會為你處理。你要管理指針,內存分配,和內存回收。你要明白如何處理串,還有動態數據。在其他語言中,所有這些對你來說是隱藏的。你不知道他們如何運行,更不用說改變他們的運行方式了。你得到了使用的便利,失卻了對程序的控制和速度。很多情況下,這是筆值得的買賣。其他的情況下就不是這樣了。
3)不同情況下你會使用不同的編程語言。
某些情況下要求使用Lisp,其他的要Java,還有別的要C++。但是C是你堅實的基礎。你可能不會使用它做一些項目,但是它會幫助提高你的能力,熟練的用其他語言編程。
4)除了匯編語言之外,C代碼生成的程序比其他任何語言生成的程序來得更小和運行更快。
那麼為什麼不學匯編語言呢?匯編是一門學了很有用的.語言,但是它沒有C那樣的可移植性,並且其他流行的語言比如JAVA的語法是基於C的,而不是匯編。你仍然應該學匯編,但它並不會證明它會像學C那樣有用。
5)如果你想要寫一個視頻游戲引擎或操作系統,你會需要C。
你不能使用C#, Java, 或 Basic來完成這些編程任務。
C語言的發展史:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
我適合學習C語言嗎?
首先我們要認清一個事實:C語言工作者只是眾多從事軟體開發者中的一小部分,在深圳這樣一個IT企業雲集的大城市,使用其它語言從事軟體開發的工作者多如牛毛,薪資待遇不比從事C語言開發的人低,當編程愛好者在選擇第一個編程語言時,C語言不一定是首先。我適合學習C語言嗎?解決這個問題,先回答以下幾個問題:
1)你學習C語言的目的是什麼?如果是想從事這方面的工作,那麼請義無反顧的堅持下去,推薦你在《微機原理》、《計算機組成原理》和《計算機系統結構》三本書中選一本配合《C語言程序設計》來看,這樣可以融匯貫通,讓你對編程有更深入更系統化的理解。而這種理解對計算機類學科的學習來說很重要。
2)您具備學習C語言的條件嗎?由於入職C語言編程的企業對入職者的要求比較高,在沒有編程工作經驗前提下多數想通過自學進入類似企業的人幾乎為零,包括很多計算機專業畢業的大、中專畢業生在校期間都會學到C語言,畢業出來後依然雲里霧里。C語言的開發,需要在實際工作中才能快速掌握。同時,英語(從事C語言開發需要經常查閱英文資料,尤其是單片機領域)、學歷、數學演算法、極強的邏輯思維能力等等也是讓多數人望而卻步的門檻。
③ c語言的變數定義
C語言中變數遵循「先定義後使用」的原則:
1、定義變數的格式:數據類型 變數名;
首先要強調的一點是:變數的定義是一條語句,每條語句都是以分號結尾的。故定義完變數,後面不要漏掉「;」分號。
在變數定義中,「數據類型」表示想要存儲什麼類型的數據就定義什麼類型的變數。
如想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字元就定義成 char 型等等。
「變數名」就是你想給這個變數起個什麼名字,通常都是用字母、數字與下劃線組合而成。比如:
「int i;double price;double goods_price2」等等。
就表示定義了一個整型變數 i、小數型變數price、goods_price2;
2、變數定義完成後,接下來就是使用變數,為變數賦值。
將一個值放到一個變數中,這個動作叫「賦值」。通俗點講,「給變數賦值」意思就是將一個值傳給一個變數。
賦值的格式是:
變數名 = 要賦的值;
它的意思是將=右邊的數字賦給左邊的變數。比如:
i = 3;
這就表示將 3 賦給了變數 i,此時 i 就等於 3 了。
3、變數的定義和賦值,可以分成兩步寫,也可以將它們合成一步,而且事實上,在實際編程中用得最多的也是合二為一的寫法。
形式如下:
數據類型 變數名 = 要賦的值;
比如:int i = 3;
就表示定義了一個變數 i,並把 3 賦給這個變數。它與
int i;
i =3;
是等價的。
在定義變數時也可以一次性定義多個變數,比如:
int i, j;
這就表示定義了變數 i 和 j。這里需要強調的是,當同時定義多個變數時,變數之間是用逗號隔開的,千萬別寫成分號。這是很多新手最容易犯的錯誤,即將逗號和分號記混了。
同樣也可以在定義多個變數的同時給它們賦值:
int i = 3, j = 4;
中間還是用逗號隔開,最後別忘記輸入分號。
最後需要注意的是,在較老的 C89/C90 標准(也稱 ANSI C 標准)中,變數只能在程序的開頭定義,或者說變數定義的前面不能有其他非聲明或非定義的語句。
(3)變數定義c語言規則擴展閱讀:
在主回答中,提到了變數定義時,變數名通常都是用字母、數字與下劃線組合而成,但是實際上,變數名也不是隨便組合的,變數定義需要遵循一定的規范,否則容易產生歧義,影響整體程序代碼 的可讀性。
所以在定義變數的時候,要注意以下命名規范:
(1)、變數名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。
標識符最好採用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復雜,用詞應當准確。
(2)、變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。當標識符由多個片語成時,每個詞的第一個字母大寫,其餘全部小寫。
比如: int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
(3)、變數名絕對不可以是C語言關鍵字,不能有空格。
(4)、變數名的長度應當符合「min-length && max-information」原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名MaxVal 就比MaxValueUntilOverflow 好用。標識符的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。
另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。
④ c語言中,什麼樣的變數定義是合法的
C項是合法的。
在VB6中,變數的命名必須遵循以下規則:
1、變數名必須以字母或下劃線打頭,名字中間只能由字母、數字和下劃線「_」組成;最後一個字元可以是類型說明符;
2、變數名的長度不得超過255個字元;
3、變數名在有效的范圍內必須是唯一的。
4、變數名不能是VB中的保留字(關鍵字),也不能是末尾帶類型說明符的保留字,但可以把保留字嵌入變數名,關鍵字是指VB6語言中的屬性,事件,方法,過程,函數等系統內部的標識符。
(4)變數定義c語言規則擴展閱讀:
1、變數名在VB中是不區分大小寫的(如ABC、aBc、abc等都是一樣的)。C語言中區分大小寫。不同的語言有不同的規則。
2、定義和使用變數時,通常要把變數名定義為容易使用閱讀和能夠描述所含數據用處的名稱,而不要使用一些難懂的縮寫如A或B2等。
3、根據需要混合使用大小寫字母和數字。一個合理協議是,變數中每個單詞的第一個字母大寫。
4、另一個合理協議是,每個變數名以兩個或三個字元縮寫開始,這些字元縮寫對應於變數要存儲數據的數據類型。
參考資料:網路-變數
⑤ 如何理解變數在C語言中的現定義後使用這一規則
這陸胡碼個表示的是位域,表示變數所佔得位數位結構是c51語言中的一種特殊結構,可以用於訪問一個位元組或字的多個位。位結構一般形式如下。
struct
位結構名
{
數據類型
變數名:
整形常數;
數據類型
變數名:
整形常數;
}位結構變數;
其中,struct為關鍵字,位結構數據類型必須是整型int(unsigned或signed);整形常熟必須是非負的整數,范圍是0~15,用於表示有多少位,即表示二進制位的個數,變數名是可選項,早哪可以省略。位結構的定義,實例如下。
struct
{
unsigned
lbit
:
8;
//lbit
佔用低位元組0~7共八位。
unsigned
hbit0
:
4;
//hbit0
佔用高位元組0~3共4位。
unsigned
hbit1
:
3;
//hbit1
佔用高位元組4~6共3位。
unsigned
hbit2
:
1;
//hbit2
佔用高位元組第7位。
}bit;
位結構成員的訪問與結構成員的訪問相同,例如訪問上列位結構中的lbit成員可寫成如下形式
bit.lbit
在使用位結構時,應注意以下幾點。
1、位結構中的成員必須是int,但可以定義為unsigned或者signed。
2、當做猛位結構成員長度為1時,c51語言將其認為是unsigned類型。
3、位結構總長度(位數)是各個位成員定義的位數之和,可以超過兩個位元組。
4、位結構中的成員不能使用數組和指針,但位結構變數可以是數組和指針。如果是指針,其成員訪問方式同結構指針。
5、位結構可以成為嵌套式結構的成員,與其他結構成員一起使用,示例如下。
struct
student
{
char
*name;
int
num;
int
age;
char
*sex;
float
score;
unsigned
reister:1;
unsigned
pay:1;
};
⑥ c語言什麼是變數變數的定義
c語言中常常用到變數,c語言中什麼是變數呢?那麼下面是我整理的c語言變數的定義,歡迎閱讀。
c語言什麼是變數
變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。在指令式語言中,變數通常是可變的;但在純函數式語言(如Haskell)中,變數可能是不可變(immutable)的。在一些語言中,變數可能被明確為是能表示可變狀態、具有存儲空間的抽象(如在Java和Visual Basic中);但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴格地定義“變數”的准確外延。
變數介紹
由於變數讓你能夠把程序中准備使用的每一段數據都賦給一個簡短、易於記憶的名字,因此它們十分有用。變數可以保存程序運行時用戶輸入的數據(如使用InputBox函數在屏幕上顯示一個對話框,然後把用戶鍵入的文本保存到變數中)、特定運算的結果以及要在窗體上顯示的一段數據等。簡而言之,變數是用於跟蹤幾乎所有類型信息的簡單工具。
變數聲明後沒有賦值的話 編譯器會自動提示並賦予默認值
變數是一種使用方便的佔位符,用於引用計算機內存地址,該地址可以存儲Script運行時可更改的程序信息。例如,可以創建一個名為Click Count的變數來存儲用戶單擊Web頁面上某個對象的次數。使用變數並不需要了解變數在計算機內存中的地址,只要通過變數名引用變數就可以查看或更改變數的值。在VB Script中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant。
聲明變數
聲明變數的一種方式是使用Dim語句、Public語句和Private語句在Script中顯式聲明變數。例如:
Dim Degrees Fahrenheit
聲明多個變數時,使用逗號分隔變數。例如:
Dim Top, Bottom, Left, Right
另一種方式是通過直接在Script中使用變數名這一簡單方式隱式聲明變數。這通常不是一個好習慣,因為這樣有時會由於變數名被拼錯而導致在運行Script時出現意外的結果。因此,最好使用Option Explicit語句顯式聲明所有變數,並將其作為Script的第一條語句。
命名規則
首先,我們必須給變數取一個合適的名字,就好像每個人都有自己的名字一樣,否則就難以區分了。在VB6中,變數的命名必須遵循以下規則:
(1)變數名必須以字母或下劃線打頭,名字中間只能由字母、數字和下劃線“_”組成;最後一個字元可以是類型說明符;
(2)變數名的長度不得超過255個字元;
(3)變數名在有效的范圍內必須是唯一的。有效的范圍就是引用變數可以被程序識別、使用的作用范圍——例如一個過程、一個窗體等等。有關引用變數作用范圍的內容,將在以後介紹。
(4)變數名不能是VB中的保留字(關鍵字),也不能是末尾帶類型說明符的保留字,但可以把保留字嵌入變數名,關鍵字是指VB6語言中的屬性、事件、方法、過程、函數等系統內部的標識符。如已經定義的詞(if、endif、while、loop等)、函數名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。例如:strName1,intMax_Length,intLesson,strNo3等是合法的變數名,而A&B,all right,3M,_Number等是非法的變數名。
注意:
(1)變數名在VB中是不區分大小寫的(如ABC、aBc、abc等都是一樣的)。C語言中區分大小寫。不同的語言有不同的規則。
(2)定義和使用變數時,通常要把變數名定義為容易使用閱讀和能夠描述所含數據用處的名稱,而不要使用一些難懂的縮寫如A或B2等。例如:假定正在為水果鋪編一個銷售蘋果的軟體。我們需要兩個變數來存儲蘋果的價格和銷量。此時,可以定義兩個名為Apple_Price和Apple_Sold的變數。每次運行程序時,用戶就這兩個變數提供具體值,這樣看起來就非常直觀。具體方法是:通過用一個或多個單片語成有意義的變數名來使變數意義明確。例如,變數名SalesTaxRate就比Tax或Rate的意義明確得多。
(3)根據需要混合使用大小寫字母和數字。一個合理協議是,變數中每個單詞的第一個字母大寫,例如:DateOfBirth。
(4)另一個合理協議是,每個變數名以兩個或三個字元縮寫開始,這些字元縮寫對應於變數要存儲數據的數據類型。例如,使用strName來說明Name變數保存字元串型數據。這種命名方法叫匈牙利命名法
格式 變數類型 + 變數名字
比如剛才說的strname "str" 是"string"的縮寫 "Name" 則是變數名字
注意 變數類型都是小寫 而且變數名字是開頭大寫
C# 命名方法
1
stringstrName
VB 命名方法
1
DimstrNameasString
雖然無須過多地關注字元縮寫的細節,但以後還是需要看一下這方面的約定。在Visual Basic聯機幫助和許多Visual Basic高級編程的書籍中都可以找到這一約定的細節。
存活期
變數存在的時間稱為存活期。Script級變數的存活期從被聲明的一刻起,直到Script運行結束。對於過程級變數,其存活期僅是該過程運行的時間,該過程結束後,變數隨之消失。在執行過程時,局部變數是理想的臨時存儲空間。可以在不同過程中使用同名的局部變數,這是因為每個局部變數只被聲明它的過程識別。
作用域
變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被Script中所有過程所識別,稱為Script級變數,具有Script級作用域。
生存期
是指變數的分配與回收的全過程,
類型
屬性變數和用戶自己建立的變數。
當我們在窗體中設計用戶界面時,vb6會自動為產生的對象(包括窗體本身)創建一組變數,即屬性變數,並為每個變數設置其預設值。這類變數可供我們直接使用,比如引用它或給它賦新值。
用戶也可以創建自己的變數,以便存放程序執行過程中的臨時數據或結果數據等等。在程序中,這樣的變數是非常需要的。下面就介紹這類變數的創建和使用方法。
聲明變數
變數在使用前,必須在代碼中進行聲明,即創建該變數。
在使用變數之前,大多數語言通常首先需要聲明變數。就是說,必須事先告訴編譯器在程序中使用了哪些變數,及這些變數的數據類型以及變數的長度。這是因為在編譯程序執行代碼之前編譯器需要知道如何給語句變數開辟存儲區,這樣可以優化程序的執行。
聲明變數有兩種方式分別是隱式聲明、顯式聲明。
隱式聲明:
變數可以不經聲明直接使用,此時VB給該變數賦予預設的類型和值。這種方式比較簡單方便,在程序代碼中可以隨時命名並使用變數,但不易檢查。
顯式聲明:
用聲明語句創建變數。
強制顯式聲明變數:
為了避免寫錯變數名引起的麻煩,用戶可以規定,只要遇到一個未經明確聲明就當成變數的名字,VB都發出錯誤警告。方法是----強制顯式聲明變數。要強制顯式聲明變數,只須在類模塊、窗體模塊或標准模塊的聲明段中加入這條語句:
Option Explicit
這條語句是用來規定在本模塊中所有變數必須先聲明再使用,即不能通過隱式聲明來創建變數。在添加Option Explicit語句後,VB將自動檢查程序中是否有未定義的變數,發現後將顯示錯誤信息。
如果要自動插入Option Explicit語句,用戶只要在“工具”菜單中選取“選項”命令,然後單擊“選項”對話框中的“編輯器”選項卡,再選中“要求變數聲明”選項
這樣VB就會在任何新模塊中自動插入Option Explicit語句,但只會在新建立的模塊中自動插入。所以對於已經建立的模塊,只能用手工方法向現有模塊添加Option Explicit語句(只有再重新啟動VB,這項功能才有效)。
理變數范圍
變數的范圍確定了能夠知曉該變數存在的那部分代碼。在一個過程內部聲明變數時,只有過程內部的代碼才能訪問或改變那個變數的值;它有一個范圍,對該過程來說是局部的。但是,有時需要使用具有更大范圍的變數,例如這樣一個變數,其值對於同一模塊內的所有過程都有效,甚至對於整個應用程序的所有過程都有效。Visual Basic 允許在聲明變數時指定它的范圍。
存儲類型
我們在程序中會經常定義一些變數來保存和處理數據。從本質上看,變數代表了一段可操作的內存,也可以認為變數是內存的符號化表示。當程序中需要使用內存時,可以定義某種類型的變數。此時編譯器根據變數的數據類型分配一定大小的內存空間。程序就可以通過變數名來訪問對應的內存了。
如果說變數的數據類型決定了對應內存的大小,那麼存儲類型則影響著對應內存的使用方式。所謂使用方式,具體說就是在什麼時間、程序的什麼地方可以使用變數,即變數的生命周期和作用域。
先了解一些基本常識。一、在程序運行時內存中有三個區域可以保存變數:靜態存儲區、棧(stack)和堆(heap)。二、根據變數定義的位置可分為全局變數(定義在函數體外的變數)和局部變數(定義在函數體內的變數,包括形參)。
所有的全局變數和靜態局部變數(定義時使用關鍵字static)都保存在靜態存儲區,其特點是:在編譯時分配內存空間並進行初始化。在程序運行期間,變數一直存在,直到程序結束,變數對應的內存空間才被釋放。
而所有的非靜態局部變數(又稱為自動變數)保存在棧(stack)中,其特點是:在變數所在的函數或模塊被執行時動態創建,函數或模塊執行完時,變數對應的內存空間被釋放。換句話說,函數或模塊每被執行一次,局部變數就會重新被分配空間。如果變數定義時沒有初始化,那麼變數中的值是隨機數。
所有用malloc分配的內存(又稱為動態內存)都在堆(heap)中,其特點是:一般通過指針來訪問動態分配的內存。即可以通過free來手動釋放動態內存,也可以在程序結束時由系統自動釋放。
以上討論的是變數的生命周期,下面來看作用域。作用域指的是變數的可見范圍,即在變數的生命周期內,程序的哪些部分可以使用該變數。
全局變數的作用域從定義點開始一直到源文件的結束。如果要在定義點之前使用全局變數的話就需要使用關鍵字extern對作用域進行擴展。全局變數預設是可以被其他文件引用的。如果希望僅限於本文件使用的話,需要在定義時使用關鍵字static。
對於局部變數來說,無論是靜態局部變數還是自動變數,作用域都僅限於定義該變數的函數或模塊。
動態內存只要沒有被釋放就可以在程序的任何地方使用,前提是要知道動態內存的地址。
註:static加在全局變數前影響的是作用域,加在局部變數前影響的是生命周期。
變數類型
C語言中,變數分為全局變數和局部變數;也可以這樣分:自動變數,靜態變數.前者是按變數作用范圍來分的,而後者是按變數存儲方式來分的.
如果按存儲佔用空間來分,可以是整型變數,字元型變數,浮點型變數等.當然還有數組,結構體變數等.
C語言還有一個重要變數:指針變數.它存放的值是一個內存地址.
操作系統變數
操作系統變數
C語言中變數名是有大小寫之分的,如SUN與sun就是兩個不同的變數名。
另一點,聲明變數時,可以不用聲明就直接賦值來決定變數類型的語言如(javascript,flash cs3.0以前,等),這類語言變數的聲明通常被稱為弱類型,而如(c++等)必須先聲明,後使用,而且聲明時必須確定變數類型,這種就是嚴格的數據類型.
變數有兩種類型:屬性變數和用戶自己建立的變數。
JavaScript
變數
正如代數一樣,JavaScript 變數用於保存值或表達式。
可以給變數起一個簡短名稱,比如 x,或者更有描述性的名稱,比如 length。
JavaScript 變數也可以保存文本值,比如 carname="Volvo"。
變數名稱的規則
變數對大小寫敏感(y 和 Y 是兩個不同的變數)
變數必須以字母或下劃線開始
注釋:由於 JavaScript 對大小寫敏感,變數名也對大小寫敏感。
實例
在腳本執行的過程中,可以改變變數的值。可以通過其名稱來引用一個變數,以此顯示或改變它的值。
本例為您展示原理。
聲明(創建) JavaScript 變數
在 JavaScript 中創建變數經常被稱為“聲明”變數。
您可以通過 var 語句來聲明 JavaScript 變數:
var x; var carname;
var x; var carname;
在以上聲明之後,變數並沒有值,不過您可以在聲明它們時向變數賦值:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
注釋:在為變數賦文本值時,請為該值加引號。
向 JavaScript 變數賦值
通過賦值語句向 JavaScript 變數賦值:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
變數名在 = 符號的左邊,而需要向變數賦的值在 = 的右側。
在以上語句執行後,變數 x 中保存的值是 5,而 carname 的值是 Volvo。
向未聲明的 JavaScript變數賦值
如果您所賦值的變數還未進行過聲明,該變數會自動聲明。
這些語句:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
與這些語句的效果相同:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
重新聲明 JavaScript變數
如果您再次聲明了 JavaScript 變數,該變數也不會丟失其原始值。
var x = 5; var x;
var x = 5; var x;
在以上語句執行後,變數 x 的值仍然是 5。在重新聲明該變數時,x 的值不會被重置或清除。
JavaScript算術
正如代數一樣,您可以使用 JavaScript 變數來做算術:
y = x - 5; z = y + 5;
y = x - 5; z = y + 5
php中的變數類型
PHP 中的變數:變數用於存儲值,比如數字、文本字元串或數組。
一旦設置了某個變數,我們就可以在腳本中重復地使用它。
PHP 中的所有變數都是以 $ 符號開始的。
在 PHP 中設置變數的正確方法是:
$var_name = value;PHP 的入門者會忘記在變數的前面的 $ 符號。如果那樣做的話,變數將是無效的。
我們創建一個存有字元串的變數,和一個存有數值的變數:
不必向 PHP 聲明該變數的數據類型。
根據變數被設置的方式,PHP 會自動地把變數轉換為正確的數據類型。
在強類型的編程語言中,您必須在使用前聲明變數的類型和名稱。
在 PHP 中,變數會在使用時被自動聲明。
php 中的變數用一個美元符號後面跟變數名來表示。變數名是區分大小寫的。
變數名與 php 中其它的標簽一樣遵循相同的規則。一個有效的變數名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線。按照正常的正則表達式,它將被表述為:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*'。
注: 在此所說的字母是 a-z,A-Z,以及 ASCII 字元從 127 到 255(0x7f-0xff)。
php 3 中,變數總是傳值賦值。那也就是說,當將一個表達式的值賦予一個變數時,整個原始表達式的值被賦值到目標變數。這意味著,例如,當一個變數的值賦予另外一個變數時,改變其中一個變數的值,將不會影響到另外一個變數。有關這種類型的賦值操作,請參閱表達式一章。
php 4 提供了另外一種方式給變數賦值:引用賦值。這意味著新的變數簡單的引用(換言之,“成為其別名” 或者 “指向”)了原始變數。改動新的變數將影響到原始變數,反之亦然。這同樣意味著其中沒有執行復制操作;因而,這種賦值操作更加快速。不過只有在密集的循環中或者對很大的數組或對象賦值時才有可能注意到速度的提升。
使用引用賦值,簡單地將一個 & 符號加到將要賦值的變數前(源變數)。例如,下列代碼片斷將輸出“My name is Bob”兩次:
有一點重要事項必須指出,那就是只有有名字的變數才可以引用賦值。
變數的命名規則:
變數名必須以字母或下劃線 "_" 開頭。
變數名只能包含字母數字字元以及下劃線。
⑦ C語言中變數名有什麼要求
C語言中變數名可由三類字元:字母、下劃線、數字組成。變數名只能由字母或下劃線開頭。變數名不能具有二義性。變數名有長度要求,有效長度是31個字元。在起定的名字中!超出長度規定的部分將被截掉。變數名中的字母不限大小寫,但大小寫意義不同。
(7)變數定義c語言規則擴展閱讀:
變數名常用命名法:
1、匈牙利命名法,是在每個變數名的前面加上若干表示數據類型的字元。基本原則是:變數名=屬性+類型+對象描述。如i表示int,所有i開頭的變數命都表示int類型。s表示String,所有變數命以s開頭的都表示String類型變數。
2、駱駝命名法,是指混合使用大小寫字母來構成變數和函數的名字。駝峰命名法跟帕斯卡命名法相似,只是首字母為小寫,如userName。因為看上去像駝峰,因此而得名。
3、帕斯卡命名法,即pascal命名法。做法是首字母大寫,如UserName,常用在類的變數命名中。
⑧ c語言變數的命名規則
在定義變數時,變數名可以是字母、數字和下劃線的組合。但是也不是隨便的組合,要注意以下幾個命名規則:
1) 變數名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。
⑨ C語言函數變數定義
#include<stdio.h>
void pre();
int input(int i);
void output(int i);
void adverstisement();
int main()
{
int i;
i=1;
while(1)
{
pre();
i=input( i);
output(i);
adverstisement();
}
return 0;
}
void pre()
{
printf("******************************/n歡迎使用小區自動售貨系統/n1.可口可樂/n2.鮮橙多/n3.百威啤酒******************************");
}
int input(int i)
{
printf("請選擇你所需要的商品");
scanf("%d",&i);
return i;
}
void output(int i)
{
switch(i)
{
case 1:
printf("請確認,你需要的是可樂/n請投幣3元");
break;
case 2:
printf("請確認,你需要的是橙汁/n請投幣4元");
break;
case 3: printf("請確認,你需要的是百威啤酒/n請投幣5元");
break;
default: { printf("輸入錯誤");
}
}
}
void adverstisement()
{
printf("節操冰棒即將上市,僅售0.5元");
getchar();
}
⑩ int a=b=0;,錯哪了
b沒有定義;
改正如下:
int b; //先定義下b,下面這行就不會報錯了。
int a=b=0;
c語言變數定義規則:首先要強調的一點是:最後的分號千萬不要丟了。變數的定義是一個語句,語句都是以分號結尾的。
賦」即「給予」的意思,所以「給變數賦值」意思就是將一個值傳給一個變數。賦值是通過賦值運算符=,賦值的格式是:變數名 = 要賦的值;
它的意思是將=右邊的數字虧歷搭賦給左邊的變數。比如:i = 3;這就表示將 3 賦給了變數 i,此時 i 就等於 3 了。
(10)變數定義c語言規則擴展閱讀
c語言變數名的命名規則:
1、變數的命名規則要求用「銷拿匈牙利法則」。即開頭字母用變數的類型,其餘部分用變數的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個字母應大寫。
2、指針變數命名的基本原則為:對一重指針變數的基本原則為:「p」+變數類型前綴+命名。
3、全爛猜局變數用g_開頭,如一個全局的長型變數定義為g_lFailCount,即:變數名=g_+變數類型+變數的英文意思(或縮寫)。
4、靜態變數用s_開頭,如一個靜態的指針變數定義為s_plPerv_Inst,即: 變數名=s_+變數類型+變數的英文意思(或縮寫)。
5、成員變數用m_開頭,如一個長型成員變數定義為m_lCount;即:變數名=m_+變數類型+變數的英文意思(或縮寫)。