您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關C語言變量的定義包括什么變量存儲類型和變量,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
C語言變量的定義包括變量存儲類型和變量的名稱。C語言定義變量的格式:“數據類型 變量名;”,“數據類型”表示想要存儲什么類型的數據,“變量名”就是你想給這個變量起個什么名字,通常都是用字母。
變量的定義
定義變量的格式非常簡單,如下所示:
數據類型 變量名;
首先要強調的一點是:最后的分號千萬不要丟了。變量的定義是一個語句,我們說過,語句都是以分號結尾的。
“數據類型”表示想要存儲什么類型的數據就定義什么類型的變量。想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字符就定義成 char 型……
“變量名”就是你想給這個變量起個什么名字,通常都是用字母。比如:
int i;
就表示定義了一個整型變量 i。
變量名的命名規則
在定義變量時,變量名可以是字母、數字和下劃線的組合。但是也不是隨便的組合,要注意以下幾個命名規則:
1) 變量名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變量名是系統專用的。
隨便打開一個頭文件就會看到,它里面所有的變量名、宏名、函數名全是以下劃線開始的。
所以為了避免與系統定義的名字產生沖突,在編程的時候,除非要求這么定義,否則永遠都不要使用下劃線作為一個變量名的開頭。
2) 變量名中的字母是區分大小寫的。比如 a 和 A 是不同的變量名,num 和 Num 也是不同的變量名。
3) 變量名絕對不可以是C語言關鍵字,這一點一定要記住!
4) 變量名中不能有空格。這個可以這樣理解:因為上面我們說過,變量名是字母、數字、下劃線的組合,沒有空格這一項。
變量的賦值
那么變量定義好之后怎么將數放到這個變量里面呢?首先要理解的是,將一個數字放到一個變量中,這個動作叫“賦值”。“賦”即“給予”的意思,所以“給變量賦值”意思就是將一個值傳給一個變量。那怎么賦值呢?是通過賦值運算符=,賦值的格式是:
變量名 = 要賦的值;
它的意思是將=右邊的數字賦給左邊的變量。比如:
i = 3;
這就表示將 3 賦給了變量 i,此時 i 就等于 3 了。
這里需要注意的是,這里的=跟數學中的“等于號”是不一樣的。在剛開始學習C語言的時候,在這一點上大家很難從數學的思維中轉變過來。在C語言中=表示賦值,即將右邊的值賦給左邊的變量,而不是左邊的變量等于右邊的值。
那C語言中有沒有表示相等的運算符呢?這就是雙等號==。這個運算符就與數學中的“等于”是同一個意思了。
以上就是變量的定義和賦值,它們是分成兩步寫的。也可以將它們合成一步,而且事實上,在實際編程中用得最多的也是合二為一的寫法。那么怎么合在一起呢?很簡單,形式如下:
數據類型 變量名 = 要賦的值;
比如:
int i = 3;
就表示定義了一個變量 i,并把 3 賦給這個變量。它與
int i; i =3;
是等價的。
在定義變量時也可以一次性定義多個變量,比如:
int i, j;
這就表示定義了變量 i 和 j。這里需要強調的是,當同時定義多個變量時,變量之間是用逗號隔開的,千萬別寫成分號。這是很多新手最容易犯的錯誤,即將逗號和分號記混了。
同樣也可以在定義多個變量的同時給它們賦值:
int i = 3, j = 4;
中間還是用逗號隔開,最后別忘記輸入分號。
最后需要注意的是,在較老的 C89/C90 標準(也稱 ANSI C 標準)中,變量只能在程序的開頭定義,或者說變量定義的前面不能有其他非聲明或非定義的語句。比如在C語言中像下面這種寫法就是錯誤的:
# include <stdio.h> int main(void) { int i; i = 3; int j = 4; //這句是錯誤的,因為在它前面有一個給變量i賦值的非定義語句 return 0; }
在 VC++ 6.0 或者 VS2010 下編譯的時候會提示下面的錯誤:
error C2143: 語法錯誤 : 缺少“;”(在“類型”的前面)
但是這種寫法在.cpp文件(C++ 源文件)中是允許的,.cpp文件中可以在程序的任意位置定義變量。
其實這與語言本身并沒有什么關系,并不是說C語言中變量就不能定義在程序中間。這實際上是與標準有關系的,有些編譯器使用的是 C89 標準,C89 標準要求所有聲明(比如函數聲明、變量定義)必須要寫在程序、函數或復合語句的開頭,而 C99 的新特性允許語句和聲明按任意順序排列,只要遵循“先聲明后使用”的原則就行。
因為 VC++ 6.0 和 VS2010 遵循的是 C89 標準,或者說它不能完全支持 C99 標準,所以它不允許將變量定義在程序中間;而 Linux 中 GCC 編譯器遵循的是 C99 標準,所以同樣是.c文件,同樣是編寫C語言,它就可以將變量定義在程序的任意位置,只要是在使用位置之前即可。
其實 C99 標準是比較好的,變量需要的時候才定義,縮短了它的生命周期,節省了內存。因為只要定義變量,系統就會為它分配內存空間,所以如果在前面定義了但是到最后才使用它,那么在使用之前它一直占著內存不放,有點浪費。
但是盡管如此,大家在編程的時候還是盡量按照 C89 的標準編寫,即使在完美支持 C99 標準的編譯器中也最好不要將聲明寫在程序的中間。因為 C89 歷時較長,現在它仍然是主流,很多編譯器仍然只支持 C89 標準或不能很好地支持 C99 標準。所以按 C89 標準編寫可移植性更強。
上面提到“復合語句”,在復合語句中也可以定義變量。所謂語句就是以分號結尾的,而復合語句就是多個語句組合在一起的語句。在C語言中,用大括號{ }括起來的多個語句稱為復合語句。
復合語句在流程控制中用得特別多,比如后面將要學習的 if、for、while 一般都是跟復合語句的。此時在這些復合語句中也可以定義變量,但是也只能定義在它的開頭。主函數 main 下面也是用大括號括起來的,所以主函數 main 下的函數體本質上也是一個復合語句,是一個大的復合語句。
所以它們還是有共性的,也就是說,在C語言中,只要是用大括號{ }括起來的,那么在它的開頭都可以定義變量。而且這些在大括號中定義的變量都稱為局部變量。此外,在大括號外面也可以定義變量,叫全局變量。
以上就是C語言變量的定義包括什么變量存儲類型和變量,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。