C語言入門教程 4 常量和變數

2022-08-24 21:36:08 字數 4430 閱讀 9067

程式執行過程中其值不能發生改變的量叫做常量,其值能發生改變的量叫做變數。常量可以直接使用,而變數則必須先定義後才能使用,否則編譯器會報錯。

在介紹常量和變數的命名規範之前,我們先了解一下什麼是識別符號和關鍵字。

識別符號,用來識別符號號常量名、變數名、函式名、陣列名、檔名、類名、物件名等。簡單的將就是大家取的名字~~有效識別符號的構成規則如下:

teemo    

garen

move_name

dj8023  

_temp  

ithe_hero_is_garen

下面列出幾個無效的識別符號:

8times    //第乙個字元必須是字母(大小寫都行)或下劃線,不能是數字。

price/tea    //後跟字母(大小寫都行)、下劃線或數字組成,/不是屬於之中。

my name    //含有空格

x+y    //包含了'+'號

int    //c語言程式中的關鍵字

c語言中具有特殊含義的英文單詞,通常用於構成語句,儲存資料,定義資料型別等。下面列出了c語言中的一些保留字。這些保留字不能作為常量名、變數名或其他識別符號名稱。

在本節中,先了解一下就行,有很多不明白的關鍵字後面會講到。

首先,必須是有效的識別符號。在這個基礎上,我們使用的命名最好能做到看名字就明白它表示什麼。如果要使用乙個變數來表示teemo的血量,我們可以將其命名為teemo_hp或者teemohp,而不是隨便的命名為a或者b之類的。遇到兩個或者更多的單詞組成的名稱,我們通常用下劃線字元將它們連線起來,或者從第二單詞開始將每乙個單詞的第乙個字母大寫。

還有一些程式設計師可能會在變數中加入描述變數型別或者內容的字首。例如,可以將整型變數teemohp命名為nteemohp,其中n表示整數值。這樣做的好處是在你遇到這個變數的時候,可以很直接的知道這個變數的型別。常用的幾種字首有:c(表示單個字元)、p(表示指標)等。另外,常量的識別符號習慣用大寫字母表示,變數的識別符號習慣用小寫字母表示。單下劃線打頭的識別符號一般代表標準資料庫的變數,雙下劃線打頭的識別符號一般代表編譯器的變數。

關於命名,想說的是,命名可以根據自己的需要、喜好和個人風格來使用,但起碼要保證乙個程式裡面的風格是一致性的。在團隊共同開發中,則需要按照規範進行命名。規範的命名不僅可以讓自己以後看的明白,也利於給團隊其他人維護**。

直接常量又可以叫做字面常量,通過資料來直接表現。在c語言中,編譯器會自動根據字面常量的表示形式確定其型別。例如:

y = x + 3;

在上面的程式中,3將會被編譯器作為int型別的常量。再例如:

y = x + 3.0;

3.0是小數,則會被編譯器作為float型別的常量。當然,字元也有常量,不過和整型常量不同,字元常量必須使用單引號來進行表示。字元常量是使用單引號括起來的乙個字元,不能是多個字元。例如,下面都是合法的字元常量:

'a'、'b'、'#'、'8'

需要強調的是只能是單引號,並且只有乙個字元,字元可以是ascii碼中的任意字元。如果數字被定義成字元常量的話,就不能代表數字字面的量了。如果參與運算,它的值將會是對應的ascii碼。比如上面的字元常量'8',在ascii碼對應的值為56。這個時候參與運算,比如加上1,將得到的整數值是57。

在c語言程式中,還可以使用乙個符號常量來代替常量。使用符號常量有兩個好處,乙個是如果需要修改常量的話,只要修改定義符號常量的語句就行;另乙個好處,使得程式中常量的含義更加清楚。定義符號常量有兩種方法:#define巨集定義和const語句定義。在這裡我就先不展開講了,大家過一眼就好了,後面的教程會詳細的講解巨集定義和const的應用。

在程式中,我們會使用到各種變數。當我們建立乙個變數時,就會在記憶體中開闢一些空間。一般變數先宣告,然後初始化。

c語言中使用宣告語句,來宣告乙個變數,指出儲存型別並提供位置標籤。c語言中,變數要求先宣告後定義,這樣做的好處在於:

宣告變數的一般語法格式:

型別 變數名;

其中,型別是資料型別的關鍵字,比如說int表示整數型別、double表示雙精度浮點型別。變數名則需要符合命名規範的識別符號。下面我們將會通過簡單的程式,來介紹如何宣告變數。比如說:我們要宣告乙個變數表示提莫的血量。在c語言中,就可以表示:

int teemohp;

float teemoattack;

int 是一種資料型別,表示是整數。

teemohp 是乙個識別符號,這裡代表整數型別的血量。

; 表示乙個語句結束。

我們從計算機的角度來講,第一條語句指出程式需要乙個儲存空間,用這個記憶體來儲存乙個整數。那麼在c語言中,寫上這個宣告語句,程式就會將計算機的某一區域記憶體,命名為teemohp,並在這個記憶體中存放整數型別。teemohp這個識別符號就是乙個變數,它代表teemo的血量。這條語句創造了乙個變數teemohp,我們把這個過程叫做變數宣告。

同型別的變數還可以在乙個語句中同時宣告多個變數,各變數之間用逗號分隔開,例如:

int teemohp, garenhp;

上面語句宣告了兩個整數型別的變數,等同於:

int teemohp;

int garenhp;

在對變數宣告時,編譯器會給變數分配記憶體,但分配的這個記憶體並不會被清空。這個就和你刪除電腦中的檔案一樣,雖然你點了刪除這些檔案,但實際上這些檔案還會存在,只是我們看不到了。只有當你再次儲存檔案覆蓋這些檔案時,這些檔案才算是刪除了。這也是一些刪除的檔案,也可以通過某些手段來恢復的重要原因。那麼就可能出現編譯器給我們分配的記憶體,已經有儲存值的情況,而且這個值對我們來說還是不確定的。為了防止程式因為不確定的值而出現不可預料的情況,我們在使用變數的時候就要對其進行賦初值,使得變數的值是確定的,這種方法就是初始化。

下面再來看乙個簡單的例項,我們要把提莫的血量作為乙個變數,提莫的血量值是586。在c語言中,就可以表示成:

int teemohp;

teemohp = 586;

我們先宣告了乙個變數teemohp,然後將常量586儲存到變數teemohp中。第二個語句中,「=」也叫賦值操作符,這個過程叫做賦值。賦值是指資料放到記憶體的過程,我們把這個過程叫做變數的賦值;又因為是第一次賦值,也稱變數的初始化。

在宣告變數的同時可以直接對其進行賦值,上面的兩個語句,又可以直接表示成:

int teemohp = 586;

如果多個變數具有相同的值,還可以進行連續的賦值。例如:

int teemohp, garenhp;

teemohp = garenhp = 586;

但不可以在宣告的時候對其進行連續賦值。像下面語句一樣:

int teemohp = garenhp = 586;//報錯

這樣寫會導致識別符號garenhp沒有宣告,所以編譯器報錯。

如果要在乙個語句中這樣做,我們應該寫成下面語句:

int teemohp = 586, garenhp = 586;

我們還可以寫成:

int teemohp, garenhp = 586;

teemohp = 586;

我們知道,在實際中,提莫通過等級的提公升以及出的裝備,血量的值會不斷變化,那我們應該怎麼辦呢?答案是,血量的值是乙個變數,我們可以通過再次賦值改變血量的值,例如:

int teemohp = 586;

teemohp = 1000;

teemohp = 5000;

再次的賦值,會把第一次的資料覆蓋掉。也就是說,teemohp中最後的值是5000(這怕不是乙個肉提莫),這也是因為586、1000已經被覆蓋掉了。

總結一下,本節內容主要介紹了c語言程式的常量和變數。介紹了常量和變數的概念以及命名規範,然後講解了它們的一些基本使用方法。

4-1 對下面進行判斷,哪些是合法識別符號,哪些又不是合法標識?

su8

_total

class

student_name

louts_1_2_3

basic

m.d.john

\#123

3d45

a>b

4-2 編寫乙個程式,對蓋倫的屬性值,找到合適的型別來定義並且為其賦值。

名字:簡稱為g

生命值:455

移動速度:340

攻擊速度:0.625

攻擊範圍:125

生命回覆:8.25

攻擊力:59.5

C 入門教程4 定義變數

有int型 long型 long long型 short型等等。下面是每個整型表示能的數的大小 整型名表示數的大小 short 32768 32767 int 2147483648 2147483647 long 同int型一樣 long long 9223372036854775808 92233...

c 入門教程 3資料型別,變數與常量

資料型別 bool 定義是否,值只有true 和 false char 定義字元,值是 a b 用單引號括起來的 int 定義整數 float 定義小數 double 定義更多位的小數 void 沒有返回值 多用於函式,有些函式沒有返回值,就寫這個定義函式的返回型別 變數 變數需要先宣告後使用。宣告...

C語言入門教程2

要利用計算機處理問題,光學習語言的語法規則還不夠,最重要的是要學會針對各型別的問題,擬定出有效的解題方法和步驟。解題方法和步驟就是演算法。演算法 為了解決乙個問題而採取的有限步驟。計算機演算法 如何使計算機一步一步地工作的具體過程。利用計算機處理問題的步驟 1 設計好演算法 演算法設計 2 用計算機...