1. 程式人生 > >第二章:C語言的資料型別

第二章:C語言的資料型別

一、識別符號的命名規範

程式設計時給變數或者函式起的名字就是識別符號,就好比我們人都有姓名,姓名就是這個人的識別符號。C語言的識別符號是不可以隨便起名字的,必須遵守一定的規則。

C 語言規定,識別符號可以是字母(A~Z,a~z)數字(0~9)下劃線_組成的字串,並且第一個字元必須是字母或下劃線。在使用識別符號時還有注意以下幾點:

(1)識別符號的長度最好不要超過8位,因為在某些版本的C中規定識別符號前8位有效,當兩個識別符號前8位相同時,則被認為是同一個識別符號。 

(2)識別符號是嚴格區分大小寫的。例如Hello和hello是兩個不同的識別符號。 

(3)識別符號最好選擇有意義的英文單詞

組成,做到"見名知意",不要使用中文。

(4)識別符號不能是C語言的關鍵字

例如:

二、變數

變數就是可以變化的量,而每個變數都會有一個名字(識別符號)。變數佔據記憶體中一定的儲存單元。使用變數之前必須先定義變數,要區分變數名和變數值是兩個不同的概念。就好比:住在房間裡的客人與房間號是兩個不同的概念。

變數定義的一般形式為:資料型別 變數名;

多個型別相同的變數:資料型別 變數名, 變數名, 變數名...;

變數名和識別符號的命名規範完全相同。%d在後面會有詳細講解

注意:在定義中不允許連續賦值,如int a=b=c=5;是不合法的。

變數的賦值分為兩種方式

:1.先宣告再賦值  2.宣告的同時賦值,例如:

三、基本資料型別

在我們玩遊戲的時候,遊戲中的角色是有型別的,有敏捷型、力量型、法術型等等。同樣C語言中的資料也是有型別的,C語言中,資料型別可分為:基本資料型別,構造資料型別,指標型別,空型別四大類。如圖所示: 

這裡我們先給大家講解基本資料型別中最簡單也是最常用的整型、實型與字元型

整型資料是指不帶小數的數字。生活中有很多資訊適合使用整型資料來表示,比如:人的年齡、班級的人數、書的總頁數等等。因此整型的型別比較多:

注:int、short int、long int是根據編譯環境的不同,所取範圍不同。而其中short int和long int至少是表中所寫範圍,但是int在表中是以16位編譯環境寫的取值範圍。另外 c語言int的取值範圍在於他佔用的位元組數 ,不同的編譯器,規定是不一樣。ANSI標準定義int是佔2個位元組,TC是按ANSI標準的,它的int是佔2個位元組的。但是在VC裡,一個int是佔4個位元組的。

浮點資料是指帶小數的數字。生活中有很多資訊適合使用浮點型資料來表示,比如:人的體重(單位:公斤)、商品價格、圓周率等等。因為精度的不同又分為3種:

注:C語言中不存在字串變數,字串只能存在字元陣列中,這個後面會講。

四、格式化輸出語句

格式化輸出語句,也可以說是佔位輸出,是將各種型別的資料按照格式化後的型別及指定的位置從計算機上顯示。這樣做的好處,是有利於計算機能夠準確的將我們所要型別資料給我們。

其格式為:printf("輸出格式符",輸出項);

C語言中的常用格式化符:

當輸出語句中包含普通字元時,可以採用一下格式:

printf("普通字元輸出格式符", 輸出項);

例如:

輸出結果為: a=10 

如果要輸出多個變數的並指定變數的位置時候,格式符還可以連用,變數之間需要用逗號隔開,如:

輸出結果為: 整數:10,小數:7.560000,字元:c 

注意:格式符的個數要與變數、常量或者表示式的個數一一對應     

五、常量

在程式執行過程中,值不發生改變的量稱為常量。C語言的常量可以分為直接常量和符號常量

直接常量也稱為字面量,是可以直接拿來使用,無需說明的量,比如:

  • 整型常量:13、0、-13;
  • 實型常量:13.33、-24.4;
  • 字元常量:‘a’、‘M’
  • 字串常量:”I love imooc!”

下面的程式碼分別列印這四種直接常量:

在C語言中,可以用一個識別符號來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:

 #define 識別符號 常量值 

符號常量的標示符一般習慣使用大寫字母變數的標示符一般習慣使用小寫字母,加以區分。下面是一個使用符號常量的小例子:

運算結果為: 圓周率:3.140000 

注意:常量是不可改變的

六、自動型別轉換

有這麼一個詞叫“狸貓換太子”,變數的資料型別就存在這樣的情況。資料型別存在自動轉換的情況,比如:

自動轉換髮生在不同資料型別運算時,在編譯的時候自動完成。自動轉換遵循的規則就好比小盒子可以放進大盒子裡面一樣,下圖表示了型別自動轉換的規則。

char型別資料轉換為int型別資料遵循ASCII碼中的對應值,ASCII碼請檢視WIKI。

注:位元組小的可以向位元組大的自動轉換,但位元組大的不能向位元組小的自動轉換

七、強制型別轉換

強制型別轉換是通過定義型別轉換運算來實現的。其一般形式為:

 (資料型別) (表示式) 

其作用是把表示式的運算結果強制轉換成型別說明符所表示的型別,例如:

輸入結果:

在使用強制轉換時應注意以下問題:

1、資料型別和表示式都必須加括號,如把(int)(x/2+y)寫成(int)x/2+y則成了把x轉換成int型之後再除2再與y相加了。

2、轉換後不會改變原資料的型別及變數值,只在本次運算中臨時性轉換

3、強制轉換後的運算結果不遵循四捨五入原則