C++程序語言設(shè)計第二章C++簡單程序設(shè)計(最終版)_第1頁
C++程序語言設(shè)計第二章C++簡單程序設(shè)計(最終版)_第2頁
C++程序語言設(shè)計第二章C++簡單程序設(shè)計(最終版)_第3頁
C++程序語言設(shè)計第二章C++簡單程序設(shè)計(最終版)_第4頁
C++程序語言設(shè)計第二章C++簡單程序設(shè)計(最終版)_第5頁
已閱讀5頁,還剩191頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式2.3 數(shù)據(jù)的輸入與輸出數(shù)據(jù)的輸入與輸出2.4 算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)2.5 自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型2.6 深度探索深度探索2.7 小結(jié)小結(jié)uC+ 1980年貝爾實驗室的年貝爾實驗室的Bjarne Strou-strup推出,推出, 它支持過程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛩С诌^程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦?設(shè)計、泛型程序設(shè)計等多種程序設(shè)計風(fēng)格設(shè)計、泛型程序設(shè)計等多種程序設(shè)計風(fēng)格C+是從是從C語言發(fā)展演變而來的,是一個更好的語言發(fā)展演變而來的,

2、是一個更好的C引入了類的機制,最初的引入了類的機制,最初的C+被稱為被稱為“帶類的帶類的C”1983年正式取名為年正式取名為C+1989年開始年開始C+語言的標(biāo)準(zhǔn)化工作語言的標(biāo)準(zhǔn)化工作1994年制定了年制定了ANSI C+標(biāo)準(zhǔn)草案標(biāo)準(zhǔn)草案1998年年11月被國際標(biāo)準(zhǔn)化組織月被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn)批準(zhǔn)為國際標(biāo)準(zhǔn)2003年年10月又發(fā)布第二版月又發(fā)布第二版C+標(biāo)準(zhǔn),即目前的標(biāo)準(zhǔn),即目前的C+2.1.1 C+的產(chǎn)生的產(chǎn)生2.1 C+語言概述語言概述第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.2 C+的特點的

3、特點u兼容兼容C它保持了它保持了C的簡潔、高效和接近匯編語言等特點,的簡潔、高效和接近匯編語言等特點, 對對C的類型系統(tǒng)進(jìn)行了改革和擴充的類型系統(tǒng)進(jìn)行了改革和擴充C+也支持面向過程的程序設(shè)計,不是一個純正的也支持面向過程的程序設(shè)計,不是一個純正的 面向?qū)ο蟮恼Z言面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒ㄖС置嫦驅(qū)ο蟮姆椒ǖ诙碌诙?C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.3 C+程序?qū)嵗绦驅(qū)嵗?2_1.cpp#include using namespace std;int main() cout Hello! endl;cout Welcome to c+! endl;ret

4、urn 0;運行結(jié)果:運行結(jié)果:Hello!Welcome to c+!預(yù)處理包含文件,沒有分號預(yù)處理包含文件,沒有分號命名空間的指令命名空間的指令主函數(shù)主函數(shù)函數(shù)函數(shù)體開體開始與始與結(jié)束結(jié)束cout輸出流對象輸出流對象,是插入操作符是插入操作符雙引號中的內(nèi)容輸出到雙引號中的內(nèi)容輸出到標(biāo)準(zhǔn)輸出設(shè)備標(biāo)準(zhǔn)輸出設(shè)備(顯示器顯示器)endl 輸出一個換行符輸出一個換行符int是主函數(shù)的返回值類型,與是主函數(shù)的返回值類型,與return 0;配套配套使用,函數(shù)有返回值必須有使用,函數(shù)有返回值必須有return 0;如果返如果返回值為回值為void即無返回值,無需即無返回值,無需return 0;注注:C

5、+程序有且僅有一個程序有且僅有一個main函數(shù)函數(shù),程序的程序的執(zhí)行從執(zhí)行從main函數(shù)開始函數(shù)開始,在在main函數(shù)中結(jié)束函數(shù)中結(jié)束每一每一條語條語句結(jié)句結(jié)束都束都有一有一個分個分號號;第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.3 C+程序?qū)嵗绦驅(qū)嵗齯用用main代表代表“主函數(shù)主函數(shù)”的名字。每一個的名字。每一個C+程序都必程序都必 須有一個須有一個 main 函數(shù)。函數(shù)。main前面的前面的int的作用是聲明的作用是聲明 函數(shù)的類型為整型。程序第函數(shù)的類型為整型。程序第6行的作用是向操作系行的作用是向操作系 統(tǒng)返回一個零值。如果程序不能正常執(zhí)行,則會

6、自統(tǒng)返回一個零值。如果程序不能正常執(zhí)行,則會自 動向操作系統(tǒng)返回一個非零值,一般為動向操作系統(tǒng)返回一個非零值,一般為-1。u函數(shù)體是由大括號函數(shù)體是由大括號 括起來的。本例中主函數(shù)內(nèi)括起來的。本例中主函數(shù)內(nèi) 只有兩個以只有兩個以cout開頭的語句。注意開頭的語句。注意C+所有語句最所有語句最 后都應(yīng)當(dāng)有一個分號。后都應(yīng)當(dāng)有一個分號。u再看程序的第再看程序的第1行行“#include ”,這不是,這不是 C+的語句,而是的語句,而是C+的一個預(yù)處理命令,它以的一個預(yù)處理命令,它以“#” 開頭以與開頭以與C+語句相區(qū)別,行的末尾沒有分號。語句相區(qū)別,行的末尾沒有分號。第二章第二章 C+簡單程序設(shè)計

7、簡單程序設(shè)計2.1 C+語言概述語言概述2.1.3 C+程序?qū)嵗绦驅(qū)嵗齯#include 是一個是一個“包含命令包含命令”,它的作用,它的作用 是將文件是將文件iostream的內(nèi)容包含到該命令所在的程序的內(nèi)容包含到該命令所在的程序 文件中,代替該命令行。文件文件中,代替該命令行。文件iostream的作用是向的作用是向 程序提供輸入或輸出時所需要的一些信息程序提供輸入或輸出時所需要的一些信息,iostream 是是i-o-stream 3個詞的組合,從它的形式就可以知道個詞的組合,從它的形式就可以知道 它代表它代表“輸入輸出流輸入輸出流”的意思,由于這類文件都放在的意思,由于這類文件都放在

8、 程序單元的開頭,所以稱為程序單元的開頭,所以稱為“頭文件頭文件”(head file)。)。 在程序進(jìn)行編譯時,先對所有的預(yù)處理命令進(jìn)行處在程序進(jìn)行編譯時,先對所有的預(yù)處理命令進(jìn)行處 理,將頭文件的具體內(nèi)容代替理,將頭文件的具體內(nèi)容代替 #include命令行,然命令行,然 后再對該程序單元進(jìn)行整體編譯。后再對該程序單元進(jìn)行整體編譯。第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.3 C+程序?qū)嵗绦驅(qū)嵗齯程序的第程序的第2行行“using namespace std; ” 的意思是的意思是“使使 用命名空間用命名空間std”。C+標(biāo)準(zhǔn)庫中的類和函數(shù)是在標(biāo)準(zhǔn)庫中

9、的類和函數(shù)是在 命名空間命名空間std中聲明的,因此程序中如果需要用到中聲明的,因此程序中如果需要用到 C+標(biāo)準(zhǔn)庫(此時就需要用標(biāo)準(zhǔn)庫(此時就需要用#include命令行),就命令行),就 需要用需要用“using namespace std; ”作聲明,表示要作聲明,表示要用用 到命名空間到命名空間std中的內(nèi)容。中的內(nèi)容。u在初學(xué)在初學(xué)C+時,對本程序中的第時,對本程序中的第1、2行可以不必行可以不必 深究,只需知道:深究,只需知道: 如果程序有輸入或輸出時,必如果程序有輸入或輸出時,必 須使用須使用“#include ”命令以提供必要的命令以提供必要的 信息,同時要用信息,同時要用“us

10、ing namespace std;” ,使程,使程序序 能夠使用這些信息,否則程序編譯時將出錯。能夠使用這些信息,否則程序編譯時將出錯。第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.3 C+程序?qū)嵗绦驅(qū)嵗毩?xí):編寫一個程序輸出以下信息:練習(xí):編寫一個程序輸出以下信息:How are you!Fine,thank you. And you?第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.4 字符集字符集u字符集是構(gòu)成字符集是構(gòu)成C+語言的基本元素。除了字符型語言的基本元素。除了字符型 數(shù)據(jù)外,其他所有成分都只能由字符集中的字符數(shù)據(jù)

11、外,其他所有成分都只能由字符集中的字符 構(gòu)成。構(gòu)成。C+語言的字符集由下述字符構(gòu)成:語言的字符集由下述字符構(gòu)成:大小寫的英文字母:大小寫的英文字母:AZ,az數(shù)字字符:數(shù)字字符:09特殊字符:特殊字符:!#%&*_+=-/“;.,:?()第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1 C+語言概述語言概述2.1.5 詞法記號詞法記號1.關(guān)鍵字關(guān)鍵字uC+關(guān)鍵字:是關(guān)鍵字:是C+預(yù)先聲明的單詞,在預(yù)先聲明的單詞,在C+程序程序 構(gòu)成中具有特殊的含義。構(gòu)成中具有特殊的含義。2.1 C+語言概述語言概述第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1.5 詞法記號詞法記號2.標(biāo)識符標(biāo)識符u

12、是是C+程序員定義的單詞,例如程序中函數(shù)名、變程序員定義的單詞,例如程序中函數(shù)名、變 量名、類名、對象名等。量名、類名、對象名等。C+標(biāo)識符命名規(guī)則如下:標(biāo)識符命名規(guī)則如下:以大寫字母、小寫字母或下劃線以大寫字母、小寫字母或下劃線(_)開始。開始。可以由以大寫字母、小寫字母、下劃線可以由以大寫字母、小寫字母、下劃線(_)或數(shù)字或數(shù)字 09組成。組成。大寫字母和小寫字母代表不同標(biāo)識符大寫字母和小寫字母代表不同標(biāo)識符(大小寫敏感大小寫敏感) 不能是不能是C+關(guān)鍵字關(guān)鍵字u例:挑出錯誤的標(biāo)識符例:挑出錯誤的標(biāo)識符 room3-1 _SUM student num1 Mr.Zhu _1_2_3 MyN

13、ame myname my_name 2men2.1 C+語言概述語言概述第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1.5 詞法記號詞法記號3.文字文字 4.操作符操作符 5.分隔符分隔符 6.空白空白u文字文字 在程序中直接使用符號表示的數(shù)據(jù),包括數(shù)在程序中直接使用符號表示的數(shù)據(jù),包括數(shù) 字、字符、字符串和布爾文字字、字符、字符串和布爾文字u操作符操作符 用于實現(xiàn)各種運算的符號,用于實現(xiàn)各種運算的符號,+ - * / u分隔符分隔符 () , : ; 用于分隔各個詞法記號或用于分隔各個詞法記號或 程序正文,不表示實際任何操作,僅用于構(gòu)造程序程序正文,不表示實際任何操作,僅用于構(gòu)造程序u空

14、白空白 空格、制表符(空格、制表符(TAB鍵產(chǎn)生的字符)、垂直鍵產(chǎn)生的字符)、垂直 制表符、換行符、回車符和制表符、換行符、回車符和注釋注釋的總稱的總稱2.1 C+語言概述語言概述第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.1.5 詞法記號詞法記號注釋注釋u注釋:注釋:對程序進(jìn)行解釋和說明,對于程序的功能實現(xiàn)不起任對程序進(jìn)行解釋和說明,對于程序的功能實現(xiàn)不起任 何作用,不會影響最終產(chǎn)生可執(zhí)行程序的大小。一個好的、何作用,不會影響最終產(chǎn)生可執(zhí)行程序的大小。一個好的、 有使用價值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的有使用價值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的 可讀性。可讀性。u注釋

15、有兩種形式:注釋有兩種形式:行尾使用注釋:行尾使用注釋:開始標(biāo)記符為:開始標(biāo)記符為:/ 用用“/”作注釋時,有效范圍只有一行,即本行有效,不能跨行作注釋時,有效范圍只有一行,即本行有效,不能跨行多行注釋:多行注釋:開始標(biāo)記和結(jié)束標(biāo)記分別為:開始標(biāo)記和結(jié)束標(biāo)記分別為:/*和和*/ 而用而用“/*/”作注釋時有效范圍為多行。只要在開始處有一作注釋時有效范圍為多行。只要在開始處有一 個個“/*”,在最后一行結(jié)束處有一個,在最后一行結(jié)束處有一個“*/”即可。即可。因此,一般習(xí)慣是:因此,一般習(xí)慣是: 內(nèi)容較少的簡單注釋常用內(nèi)容較少的簡單注釋常用“/”,內(nèi)容較長,內(nèi)容較長 的常用的常用“/*/ ”。學(xué)生

16、人數(shù)學(xué)生人數(shù)商品個數(shù)商品個數(shù)商品價格商品價格學(xué)生姓名學(xué)生姓名邊長值邊長值角度值角度值分?jǐn)?shù)分?jǐn)?shù)商品名稱商品名稱正弦值正弦值字符類型字符類型整型整型實型實型數(shù)值類型數(shù)值類型u問題:以什么數(shù)據(jù)形式表示問題中涉及的數(shù)據(jù)問題:以什么數(shù)據(jù)形式表示問題中涉及的數(shù)據(jù)(實實 體、對象體、對象)?2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u計算機處理的對象是數(shù)據(jù),而數(shù)據(jù)是以某種特定計算機處理的對象是數(shù)據(jù),而數(shù)據(jù)是以某種特定 的形式存在的的形式存在的(例如整數(shù)、浮點數(shù)、字符等形式

17、例如整數(shù)、浮點數(shù)、字符等形式)。 不同的數(shù)據(jù)之間往往還存在某些聯(lián)系(例如由若不同的數(shù)據(jù)之間往往還存在某些聯(lián)系(例如由若 干個整數(shù)組成一個整數(shù)數(shù)組)。數(shù)據(jù)結(jié)構(gòu)指的是干個整數(shù)組成一個整數(shù)數(shù)組)。數(shù)據(jù)結(jié)構(gòu)指的是 數(shù)據(jù)的組織形式。例如,數(shù)組就是一種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的組織形式。例如,數(shù)組就是一種數(shù)據(jù)結(jié)構(gòu)。 不同的計算機語言所允許使用的數(shù)據(jù)結(jié)構(gòu)是不同不同的計算機語言所允許使用的數(shù)據(jù)結(jié)構(gòu)是不同 的。處理同一類問題,如果數(shù)據(jù)結(jié)構(gòu)不同,算法的。處理同一類問題,如果數(shù)據(jù)結(jié)構(gòu)不同,算法 也會不同。例如,對也會不同。例如,對10個整數(shù)排序和對包含個整數(shù)排序和對包含10個個 元素的整型數(shù)組排序的算法是不同的。元素的整型數(shù)

18、組排序的算法是不同的。uC+可以使用的數(shù)據(jù)類型如下:可以使用的數(shù)據(jù)類型如下:2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計布爾型就是邏輯型布爾型就是邏輯型空類型就是無值型空類型就是無值型2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型uC+的數(shù)據(jù)包括的數(shù)據(jù)包括常量與變量常量與變量,常量與變量都具有類,常量與變量都具有類 型。由以上這些數(shù)據(jù)類型還可以構(gòu)成更復(fù)雜的數(shù)據(jù)型。由以上這些數(shù)據(jù)類型還可以構(gòu)成更復(fù)雜的數(shù)據(jù) 結(jié)構(gòu)。例如利用指針和結(jié)構(gòu)體類型可以構(gòu)成表、樹、結(jié)構(gòu)。例如利用指針和

19、結(jié)構(gòu)體類型可以構(gòu)成表、樹、 棧等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。棧等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。uC+并沒有統(tǒng)一規(guī)定各類數(shù)據(jù)的精度、數(shù)值范圍和并沒有統(tǒng)一規(guī)定各類數(shù)據(jù)的精度、數(shù)值范圍和 在內(nèi)存中所占的字節(jié)數(shù),各在內(nèi)存中所占的字節(jié)數(shù),各C+編譯系統(tǒng)根據(jù)自己編譯系統(tǒng)根據(jù)自己 的情況作出安排。書中表的情況作出安排。書中表2-1列出在列出在IA-32處理器的處理器的 VC+ 2008 各類型的長度和取值范圍。各類型的長度和取值范圍。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計(signed/unsigned) char (unsigned) short (unsigned) int (

20、unsigned) longfloat double long double2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u說明:說明:u(1) 整型數(shù)據(jù)分為長整型(整型數(shù)據(jù)分為長整型(long int)、一般整)、一般整 型(型(int)和短整型()和短整型(short int)。在)。在int前面加前面加 long和和short分別表示長整型和短整型。分別表示長整型和短整型。u(2) 整型數(shù)據(jù)的存儲方式為按二進(jìn)制數(shù)形式存儲。整型數(shù)據(jù)的存儲方式為按二進(jìn)制數(shù)形式存儲。2.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式

21、第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u (3) 在整型符號在整型符號int和字符型符號和字符型符號char的前面的前面,可以加修飾符可以加修飾符 signed(表示表示“有符號有符號”)或或unsigned(表示表示“無符號無符號”)。如果如果 指定為指定為signed,則數(shù)值以,則數(shù)值以補碼補碼形式存放,存儲單元中的最形式存放,存儲單元中的最 高位高位(bit)用來表示數(shù)值的符號用來表示數(shù)值的符號(“0”表示表示“正正”, “1”表示表示“負(fù)負(fù)”)。 如果指定為如果指定為unsigned,則數(shù)值沒有符號,全部二進(jìn)制位,則數(shù)值沒有符號,全部二進(jìn)制位 都用來表示數(shù)值本身。例如短整型數(shù)據(jù)占兩

22、個字節(jié)都用來表示數(shù)值本身。例如短整型數(shù)據(jù)占兩個字節(jié):2.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計 有符號時,能存儲的最大值為有符號時,能存儲的最大值為215-1,即,即32767,最,最 小值為小值為-32768。無符號時。無符號時, 能存儲的最大值為能存儲的最大值為216-1, 即即65535,最小值為,最小值為0。有些數(shù)據(jù)是沒有負(fù)值的。有些數(shù)據(jù)是沒有負(fù)值的, 可可 以使用以使用unsigned,它存儲正數(shù)的范圍比用它存儲正數(shù)的范圍比用signed時要時要 大一倍。大一倍。u(4) 浮點型浮點型(又稱實型又稱實

23、型)數(shù)據(jù)分為單精度數(shù)據(jù)分為單精度(float)、雙、雙 精度精度(double)和長雙精度和長雙精度(long double)3種,在種,在 Visual C+ 6.0中,對中,對float提供提供6位有效數(shù)字,對位有效數(shù)字,對 double提供提供15位有效數(shù)字,并且位有效數(shù)字,并且float和和double的的 數(shù)值范圍不同。對數(shù)值范圍不同。對float分配分配4個字節(jié)個字節(jié), 對對double和和 long double分配分配8個字節(jié)。個字節(jié)。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計(5)字符型字符型 char、signed char、

24、unsigned char 實質(zhì)是占一個字節(jié)的整型數(shù)實質(zhì)是占一個字節(jié)的整型數(shù)(小整數(shù)小整數(shù)) 允許的操作:和整型相同允許的操作:和整型相同(6)布爾型布爾型 bool , 值為值為true和和false 可以當(dāng)作整數(shù)用可以當(dāng)作整數(shù)用( true一般為一般為1,false為為0) 把其它類型的值轉(zhuǎn)換為布爾值時,非零值轉(zhuǎn)換把其它類型的值轉(zhuǎn)換為布爾值時,非零值轉(zhuǎn)換 為為true,零值轉(zhuǎn)換為,零值轉(zhuǎn)換為false程序運行過程中,程序運行過程中,其值其值是否能被改變是否能被改變?變量變量是是常量常量不是不是2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u常量:

25、常量:程序運行過程中,其值程序運行過程中,其值不能不能被改變的量被改變的量u分類分類整型常量整型常量實型常量實型常量字符型常量字符型常量字符串常量字符串常量布爾型常量布爾型常量(false,true)符號常量:用一個標(biāo)識符代表的常量符號常量:用一個標(biāo)識符代表的常量字面常量:從字面形式字面常量:從字面形式即可判斷即可判斷2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量1. 整型常量(整數(shù))的類型整型常量(整數(shù))的類型在上一節(jié)中

26、已知道:在上一節(jié)中已知道: 整型數(shù)據(jù)可分為整型數(shù)據(jù)可分為int,short int,long int以及以及unsigned int,unsigned short,unsigned long等類別。整型常量也分為以上類別。為什么將常等類別。整型常量也分為以上類別。為什么將常量區(qū)分為不同的類別呢?因為在進(jìn)行賦值或函數(shù)的參量區(qū)分為不同的類別呢?因為在進(jìn)行賦值或函數(shù)的參數(shù)虛實結(jié)合時要求數(shù)據(jù)類型匹配。數(shù)虛實結(jié)合時要求數(shù)據(jù)類型匹配。u整型常量:以文字出現(xiàn)的整數(shù),包括正整數(shù)、負(fù)整整型常量:以文字出現(xiàn)的整數(shù),包括正整數(shù)、負(fù)整 數(shù)和數(shù)和02.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程

27、序設(shè)計簡單程序設(shè)計2.2.2 常量常量整型常量整型常量u一個整型常量可以用一個整型常量可以用3種不同的方式表示:種不同的方式表示: 十進(jìn)制整數(shù)。十進(jìn)制整數(shù)。若干個若干個09的數(shù)字,數(shù)字部分不能以的數(shù)字,數(shù)字部分不能以0開頭。開頭。 如如1357,-432,0等。在一個整型常量后面加等。在一個整型常量后面加 一個字母一個字母l或或L, 則認(rèn)為是則認(rèn)為是long int型常量。例如型常量。例如123L,421L,0L等,這往往等,這往往 用于函數(shù)調(diào)用中。如果函數(shù)的形參為用于函數(shù)調(diào)用中。如果函數(shù)的形參為long int,則要求實參,則要求實參 也為也為long int型,此時用型,此時用123作實參

28、不行,而要用作實參不行,而要用123L作實參。作實參。(2) 八進(jìn)制整數(shù)。八進(jìn)制整數(shù)。0若干個若干個07的數(shù)字。的數(shù)字。在常數(shù)的開頭加一個數(shù)字在常數(shù)的開頭加一個數(shù)字 0,就表示這是以八進(jìn)制數(shù)形式表示的常數(shù)。如,就表示這是以八進(jìn)制數(shù)形式表示的常數(shù)。如020表示這是表示這是 八進(jìn)制數(shù)八進(jìn)制數(shù)20,即,即(20)8,它相當(dāng)于十進(jìn)制數(shù),它相當(dāng)于十進(jìn)制數(shù)16。(3) 十六進(jìn)制整數(shù)。十六進(jìn)制整數(shù)。0 x若干個若干個09的數(shù)字及的數(shù)字及AF的字母的字母(大小寫均可大小寫均可)。 在常數(shù)的開頭加一個數(shù)字在常數(shù)的開頭加一個數(shù)字0和一個英文字母和一個英文字母X(或或x),就表示這,就表示這 是以十六進(jìn)制數(shù)形式表示

29、的常數(shù)。如是以十六進(jìn)制數(shù)形式表示的常數(shù)。如0X20表示這是十六進(jìn)制表示這是十六進(jìn)制 數(shù)數(shù)20,即,即(20)16,它相當(dāng)于十進(jìn)制數(shù),它相當(dāng)于十進(jìn)制數(shù)32。12,30 045 0123, 040 039 0 x12A, 0X96 2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量實型常量實型常量u實型常量:以文字形式出現(xiàn)的實數(shù)。實型常量:以文字形式出現(xiàn)的實數(shù)。u一個浮點數(shù)可以用兩種不同的方式表示:一個浮點數(shù)可以用兩種不同的方式表示: 十進(jìn)制小數(shù)形式。十進(jìn)制小數(shù)形式。如如21.456,-7.98等。它一般由等。它一般由 整數(shù)部分和小數(shù)部分

30、組成,可以省略其中之一整數(shù)部分和小數(shù)部分組成,可以省略其中之一(如如 78.或或.06,.0),但不能二者皆省略。,但不能二者皆省略。C+編譯系統(tǒng)編譯系統(tǒng) 把用這種形式表示的浮點數(shù)把用這種形式表示的浮點數(shù)一律按雙精度常量處理一律按雙精度常量處理,在內(nèi)存中占在內(nèi)存中占8個字節(jié)。如果在實數(shù)的數(shù)字之后加字母個字節(jié)。如果在實數(shù)的數(shù)字之后加字母 F或或f,表示此數(shù)為單精度浮點數(shù),如,表示此數(shù)為單精度浮點數(shù),如1234F,-43f, 占占 4個字節(jié)。如果加字母個字節(jié)。如果加字母L或或l,表示此數(shù)為長雙精度,表示此數(shù)為長雙精度數(shù)數(shù)(long double),在,在Visual C+ 6.0中占中占8個字節(jié)。

31、個字節(jié)。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計(2) 指數(shù)形式(即浮點形式)指數(shù)形式(即浮點形式)一個浮點數(shù)可以寫成指一個浮點數(shù)可以寫成指 數(shù)形式,如數(shù)形式,如3.14159可以表示為可以表示為0.314159101、 3.14159100、31.415910-1、314.15910-2等形等形 式。在程序中應(yīng)表示為:式。在程序中應(yīng)表示為: 0.314159e1,3.14159e0、 31.4159e-1、314.159e-2,用字母,用字母e表示其后的數(shù)是表示其后的數(shù)是 以以10為底的冪,如為底的冪,如e12表示表示1012。u其一般形式為

32、:其一般形式為:數(shù)符數(shù)符 數(shù)字部分?jǐn)?shù)字部分 指數(shù)部分指數(shù)部分 上面各數(shù)據(jù)中的上面各數(shù)據(jù)中的0.314159,3.14159, 31.4159, 314.159 等就是其中的數(shù)字部分??梢钥吹剑河捎谥笖?shù)部分等就是其中的數(shù)字部分??梢钥吹剑河捎谥笖?shù)部分 的存在,使得同一個浮點數(shù)可以用不同的指數(shù)形式的存在,使得同一個浮點數(shù)可以用不同的指數(shù)形式 來表示,數(shù)字部分中小數(shù)點的位置是浮動的。例如:來表示,數(shù)字部分中小數(shù)點的位置是浮動的。例如: 2.2.2 常量常量實型常量實型常量2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量實型常量實型常量 a

33、=0.314159e1; a=3.14159e0; a=31.4159e-1; a=314.159e-2;在程序中不論把浮點數(shù)寫成小數(shù)形式還是指數(shù)形式,在程序中不論把浮點數(shù)寫成小數(shù)形式還是指數(shù)形式,在內(nèi)在內(nèi) 存中都是以指數(shù)形式存中都是以指數(shù)形式(即浮點形式即浮點形式)存儲的。存儲的。例如不論在程例如不論在程 序中寫成序中寫成314.159或或314.159e0、31.4159e1、3.14159e2、 0.314159e3等形式,在內(nèi)存中都是以等形式,在內(nèi)存中都是以規(guī)范化的指數(shù)形式規(guī)范化的指數(shù)形式存存 放,如下:放,如下:左邊左邊4個賦值語句中,用了不同形個賦值語句中,用了不同形式的浮點數(shù),但

34、其作用是相同的。式的浮點數(shù),但其作用是相同的。 為便于理解,上圖中是用十進(jìn)制表示的,實際上在存儲單元中是為便于理解,上圖中是用十進(jìn)制表示的,實際上在存儲單元中是 用二進(jìn)制數(shù)來表示小數(shù)部分,用用二進(jìn)制數(shù)來表示小數(shù)部分,用2的冪次來表示指數(shù)部分的。的冪次來表示指數(shù)部分的。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量實型常量實型常量u規(guī)范化的指數(shù)形式:規(guī)范化的指數(shù)形式:數(shù)字部分必須小于數(shù)字部分必須小于1,同時,同時, 小數(shù)點后面第一個數(shù)字必須是一個非小數(shù)點后面第一個數(shù)字必須是一個非0數(shù)字。數(shù)字。例如不能是例如不能是0.0314159。

35、因此。因此314.159和和314.159e0、 31.4159e1、3.14159e2、0.314159e3在內(nèi)存中表示在內(nèi)存中表示 成成0.314159103。存儲單元分為兩部分,。存儲單元分為兩部分,一部分一部分 用來存放數(shù)字部分,一部分用來存放指數(shù)部分用來存放數(shù)字部分,一部分用來存放指數(shù)部分。對于以指數(shù)形式表示的常量,也都作為雙精度常對于以指數(shù)形式表示的常量,也都作為雙精度常 量處理。量處理。 2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量1. 普通的字符常量普通的字符常量 用單撇號括起來的一個字符就是字符

36、型常量。用單撇號括起來的一個字符就是字符型常量。例如例如a、 #、 %、 D都是合法的字符常量,都是合法的字符常量,在在 內(nèi)存中占一個字節(jié)。內(nèi)存中占一個字節(jié)。注意注意: 字符常量只能包括一個字符,如字符常量只能包括一個字符,如AB是不是不 合法的。合法的。字符常量區(qū)分大小寫字母,如字符常量區(qū)分大小寫字母,如A和和a 是兩個不同的字符常量。是兩個不同的字符常量。撇號撇號( )是是定界符定界符,而,而 不屬于字符常量的一部分。如不屬于字符常量的一部分。如cout“a”;輸出的;輸出的 是一個字母是一個字母a,而不是,而不是3個字符個字符a。a,?,3,# abc,啊啊 2.2 基本數(shù)據(jù)類型和表達(dá)式

37、基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量2. 轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量 除了以上形式的字符常量外,除了以上形式的字符常量外,C+還允許用一種特殊形式的還允許用一種特殊形式的 字符常量,就是以字符常量,就是以 “”開頭的字符序列。開頭的字符序列。例如,例如,n代表一個代表一個“換行換行”符。符?!癱outn; ” 將輸出一將輸出一個個 換行,其作用與換行,其作用與“coutendl; ” 相同。這種相同。這種“控制字符控制字符”,在屏,在屏 幕上是不能顯示的。在程序中也無法用一個一般形式的字符幕上是不能顯示的。在程序中也無法用一個一般形式

38、的字符 表示,只能采用特殊形式來表示。表示,只能采用特殊形式來表示。常用的以常用的以“”開頭的特殊字符見書中表開頭的特殊字符見書中表2-22.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量常用的以常用的以“”開頭的特殊字符見書中表開頭的特殊字符見書中表2-2u注意:注意: (1)轉(zhuǎn)義字符常量只代表一個字符轉(zhuǎn)義字符常量只代表一個字符(占一個字節(jié)占一個字節(jié))。(2)八進(jìn)制形式:八進(jìn)制形式: nnn。反斜杠后的八進(jìn)制數(shù)可以不用反斜杠后的八進(jìn)制數(shù)可以不用0開頭開頭(3)十六進(jìn)制形式:十六進(jìn)制形式: xnnn。反斜杠后的十六進(jìn)制

39、數(shù)只能以小反斜杠后的十六進(jìn)制數(shù)只能以小 寫字母寫字母x開頭,不允許用大寫字母開頭,不允許用大寫字母X或或0 x開頭。例如:開頭。例如:a 的十六進(jìn)制的十六進(jìn)制ASCII碼是碼是61,即,即x61u注意:如果反斜杠和雙引號作為字符串中的有效注意:如果反斜杠和雙引號作為字符串中的有效 字符,則必須使用轉(zhuǎn)義字符。字符,則必須使用轉(zhuǎn)義字符。 C:msdosv6.22 coutC:msdosv6.22n; I say: Goodbye! coutI say:Goodbye!endl;2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符

40、常量2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量3. 字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法 將一個字符常量存放到內(nèi)存單元時,實際上并不是將一個字符常量存放到內(nèi)存單元時,實際上并不是 把該字符本身放到內(nèi)存單元中去,而是將該字符相把該字符本身放到內(nèi)存單元中去,而是將該字符相 應(yīng)的應(yīng)的ASCII代碼放到存儲單元中,實際上在內(nèi)存中代碼放到存儲單元中,實際上在內(nèi)存中 是以二進(jìn)制形式存放的。是以二進(jìn)制形式存放的。00110010a(ASCII=97)2(ASCII=50)0110000

41、1u作為作為char類型數(shù)據(jù),實質(zhì)上是一個字節(jié)長度的整類型數(shù)據(jù),實質(zhì)上是一個字節(jié)長度的整 型數(shù)據(jù),數(shù)值是其型數(shù)據(jù),數(shù)值是其ASCII碼碼2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量u作為作為char類型數(shù)據(jù),實質(zhì)上是一個字節(jié)長度的整型類型數(shù)據(jù),實質(zhì)上是一個字節(jié)長度的整型 數(shù)據(jù),數(shù)值是其數(shù)據(jù),數(shù)值是其ASCII碼。這樣,在碼。這樣,在C+中字符型中字符型 數(shù)據(jù)和整型數(shù)據(jù)之間就可以通用。一個字符數(shù)據(jù)可數(shù)據(jù)和整型數(shù)據(jù)之間就可以通用。一個字符數(shù)據(jù)可 以賦給一個整型變量,反之,一個整型數(shù)據(jù)也可以以賦給一個整型變量,反之,一

42、個整型數(shù)據(jù)也可以 賦給一個字符變量。也可以對字符數(shù)據(jù)進(jìn)行算術(shù)運賦給一個字符變量。也可以對字符數(shù)據(jù)進(jìn)行算術(shù)運 算,此時相當(dāng)于對它們的算,此時相當(dāng)于對它們的ASCII碼進(jìn)行算術(shù)運算。碼進(jìn)行算術(shù)運算。u例例: 將字符賦給整型變量。將字符賦給整型變量。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u例例2.1 將字符賦給整型變量。將字符賦給整型變量。#include using namespace std;int main() int i,j; /i和和j是整型變量是整型變量 i= A ; /將一個字符常量賦給整型變量將一個字符常量賦給整型變量i j= B

43、; /將一個字符常量賦給整型變量將一個字符常量賦給整型變量j couti jn; /輸出整型變量輸出整型變量i和和j的值,的值, /n 是換行符是換行符 return 0; 2.2.2 常量常量字符常量字符常量2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計u例例2.1 將字符賦給整型變量。將字符賦給整型變量。#include using namespace std;int main() int i,j; i= A; j= B; couti jn; return 0;運行結(jié)果運行結(jié)果 65 66i和和j被指定為整型變量。但在被指定為整型變量。但在第第5

44、和第和第6行中,將字符行中,將字符A和和B分別賦給分別賦給i和和j,它的作用,它的作用相相當(dāng)于以下兩個賦值語句:當(dāng)于以下兩個賦值語句:i65;j66;因為因為A和和B的的ASCII碼為碼為65和和66。在程序的第。在程序的第5和第和第6行是行是 把把65和和66直接存放到直接存放到i和和j的內(nèi)存單元中。因此輸出的內(nèi)存單元中。因此輸出65和和66。注注:在一定條件下,字符型數(shù)據(jù)和整型數(shù)據(jù)是可以通用的。但在一定條件下,字符型數(shù)據(jù)和整型數(shù)據(jù)是可以通用的。但 是應(yīng)注意字符數(shù)據(jù)只占一個字節(jié),它只能存放是應(yīng)注意字符數(shù)據(jù)只占一個字節(jié),它只能存放0255范圍內(nèi)的范圍內(nèi)的 整數(shù)。整數(shù)。2.2 基本數(shù)據(jù)類型和表達(dá)

45、式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符常量字符常量u例例: 字符數(shù)據(jù)與整數(shù)進(jìn)行算術(shù)運算。下面程序的作用是將小字符數(shù)據(jù)與整數(shù)進(jìn)行算術(shù)運算。下面程序的作用是將小 寫字母轉(zhuǎn)換為大寫字母。寫字母轉(zhuǎn)換為大寫字母。#include using namespace std;int main( )char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; coutc1 c2endl; return 0;a的的ASCII碼為碼為97,而,而A的的ASCII碼為碼為65,b為為98,B為為66。從。從ASCII表中可以看到每一個小寫字表

46、中可以看到每一個小寫字母比它相應(yīng)的大寫字母的母比它相應(yīng)的大寫字母的ASCII大大32。字符數(shù)據(jù)與數(shù)值直接進(jìn)行算字符數(shù)據(jù)與數(shù)值直接進(jìn)行算術(shù)運算,術(shù)運算,a-32得到整數(shù)得到整數(shù)65,b-32得到整數(shù)得到整數(shù)66。將。將65和和66存放在存放在c1,c2中,由于中,由于c1,c2是字符變量,因是字符變量,因此用此用cout輸出輸出c1,c2時,得到字符時,得到字符A和和B(A的的ASCII碼為碼為65,B的的ASCII碼為碼為66)。)。運行結(jié)果為:運行結(jié)果為:A B2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符串常量字符串常量u

47、用雙撇號括起來的部分就是用雙撇號括起來的部分就是字符串常量。字符串常量。u例如例如“abc”, “Hello!”, “a+b”, “Liping”都是都是 字符串常量。字符串常量。a,3.14, How are younu字符串中字符的個數(shù)稱為字符串中字符的個數(shù)稱為字符串長度字符串長度u長度為長度為0的字符串的字符串(即一個字符都沒有的字符串即一個字符都沒有的字符串)稱稱 為為空串空串,表示為,表示為“”“” (一對緊連的雙引號一對緊連的雙引號)。u 空格串:空格串:右空格構(gòu)成的字符串。右空格構(gòu)成的字符串。 “ ” 表示由一個表示由一個 空額構(gòu)成的長度為空額構(gòu)成的長度為1的字符串。的字符串。2

48、.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符串常量字符串常量u字符串常量字符串常量“abc”在內(nèi)存中占在內(nèi)存中占4個字節(jié)(而不是個字節(jié)(而不是3個個 字節(jié)),見下圖:字節(jié)),見下圖:u編譯系統(tǒng)會在字符串最后自動加一個編譯系統(tǒng)會在字符串最后自動加一個“0”作為字符作為字符 串結(jié)束標(biāo)志。但串結(jié)束標(biāo)志。但“0”并不是字符串的一部分,它只作并不是字符串的一部分,它只作 為字符串的結(jié)束標(biāo)志。如為字符串的結(jié)束標(biāo)志。如 cout“abc”endl; 輸出輸出3個字符個字符abc,而不包括,而不包括“0” 。u字符串常量的存儲形式字符串常量的

49、存儲形式42 在內(nèi)存中字符串中的每個字符以其在內(nèi)存中字符串中的每個字符以其ASCIIASCII值的二值的二進(jìn)制形式按順序存放。進(jìn)制形式按順序存放。 系統(tǒng)自動在字符串的末尾加一個系統(tǒng)自動在字符串的末尾加一個空字符空字符00 ( (值值為為0, 0, 即符號常量即符號常量NULL) NULL) 作為字符串的結(jié)束標(biāo)志。作為字符串的結(jié)束標(biāo)志。 00不可顯示,也不引起任何控制動作。不可顯示,也不引起任何控制動作。例如例如 字符串字符串chinachina在內(nèi)存中的實際存儲如下:在內(nèi)存中的實際存儲如下:注意:注意:n 在書寫字符串常量時,在書寫字符串常量時,不必加結(jié)束字符不必加結(jié)束字符00,否則畫蛇添足。

50、否則畫蛇添足。n輸出字符串時輸出字符串時00不不輸出輸出china0010000110100100001001001010011100100001000000000實際占用字節(jié)而非字節(jié)內(nèi)存空間。實際占用字節(jié)而非字節(jié)內(nèi)存空間。u字符串常量的存儲形式字符串常量的存儲形式2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符串常量字符串常量u注意:注意: “a”和和a代表不同的含義,代表不同的含義, “a”是字符串是字符串常常 量,量,a 是字符常量。

51、前者占兩個字節(jié),后者占是字符常量。前者占兩個字節(jié),后者占1個個 字節(jié)。請分析下面的程序片段:字節(jié)。請分析下面的程序片段: char c; /定義一個字符變量定義一個字符變量 c=a; /正確正確 c=“a”; /錯誤,錯誤,c只能容納一個字符只能容納一個字符字符串常量要用字符數(shù)組來存放,見第字符串常量要用字符數(shù)組來存放,見第6章。章。aa 0970aa972.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符串常量字符串常量u請思考:請思考: 字符串常量字符串常量“abcn”包含幾個字符包含幾個字符?不是不是5個而是個而是4個字符,其

52、中個字符,其中“n”是一個轉(zhuǎn)義字符。是一個轉(zhuǎn)義字符。 但它在內(nèi)存中占但它在內(nèi)存中占5個字節(jié)(包括一個個字節(jié)(包括一個“0”字符)字符) 。 編譯系統(tǒng)遇到編譯系統(tǒng)遇到“”時就會把它認(rèn)作轉(zhuǎn)義字符的標(biāo)時就會把它認(rèn)作轉(zhuǎn)義字符的標(biāo) 志,把它和其后的字符一起作為一個轉(zhuǎn)義字符。志,把它和其后的字符一起作為一個轉(zhuǎn)義字符。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量字符串常量字符串常量u字符常量與字符串常量的區(qū)別字符常量與字符串常量的區(qū)別定界符不同:定界符不同:字符常量使用單引號,而字符串常量字符常量使用單引號,而字符串常量 使用雙引號;使用雙引

53、號;長度不同:長度不同:字符常量的長度固定為字符常量的長度固定為1,而字符串常,而字符串常 量的長度,可以是量的長度,可以是0,也可以是某個整數(shù);,也可以是某個整數(shù);存儲要求不同:存儲要求不同:字符常量存儲的是字符的字符常量存儲的是字符的ASCII碼碼 值,而字符串常量,除了要存儲串中字符的值,而字符串常量,除了要存儲串中字符的ASCII 碼值外,還要存儲一個結(jié)束標(biāo)志碼值外,還要存儲一個結(jié)束標(biāo)志0 。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量符號常量符號常量u為了編程和閱讀的方便,在為了編程和閱讀的方便,在C+程序設(shè)計中,常用

54、程序設(shè)計中,常用 一個符號名代表一個常量,稱為一個符號名代表一個常量,稱為符號常量符號常量。符號常符號常 量的值在程序中間不能改變。量的值在程序中間不能改變。#define PI 3.14注:在一個程序中不能對同一個符號常量定義多次注:在一個程序中不能對同一個符號常量定義多次 如:如: #define PI 3.14 #define PI 3.1415962.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.2 常量常量符號常量符號常量# includeusing namespace std;int main( ) int r=4; float s,

55、l; l=2*PI*r; s=PI*r*r; coutl=lendl s=sendl; return 0;#define PI 3.14預(yù)處理命令預(yù)處理命令#define指定指定PI在本在本程序中代表常量程序中代表常量3.14,此后凡在,此后凡在本程序中出現(xiàn)的本程序中出現(xiàn)的PI都代表都代表3.14,可以和常量一樣進(jìn)行運算可以和常量一樣進(jìn)行運算.注意符號常量雖然有名字,但它注意符號常量雖然有名字,但它不是變量。它的值在其作用域不是變量。它的值在其作用域(在在本例中為主函數(shù)本例中為主函數(shù))內(nèi)是不能改變的內(nèi)是不能改變的也不能被賦值。如用賦值語句也不能被賦值。如用賦值語句“PI=3.1415926;”

56、給給PI賦值是錯的。賦值是錯的。 使用符號常量的好處是:使用符號常量的好處是:(1) 含義清楚。含義清楚。(2) 在需要改變一個常量時能做到在需要改變一個常量時能做到 “一改全改一改全改”。 如如 #define PI 3.14159262.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計練習(xí):練習(xí):1.C+語言中的標(biāo)識符只能由三種字符組成,它們是語言中的標(biāo)識符只能由三種字符組成,它們是 2. 下列數(shù)據(jù)類型不是下列數(shù)據(jù)類型不是C+語言基本數(shù)據(jù)類型的是語言基本數(shù)據(jù)類型的是( ) A 字符型字符型 B 整型整型 C 實型實型 D 數(shù)組數(shù)組3. 在在C+語言中,

57、語言中,080是是( ) A 八進(jìn)制數(shù)八進(jìn)制數(shù) B 十進(jìn)制數(shù)十進(jìn)制數(shù) C 十六進(jìn)制數(shù)十六進(jìn)制數(shù) D 非法數(shù)非法數(shù)4. 下面正確的字符常量是下面正確的字符常量是( ) A “C” B 1 C W D 2E-55. 字符串字符串“Thiss a book.n ”的長度為的長度為 6.在在C+中存儲字符串中存儲字符串“abcdef”至少需要至少需要 個字節(jié)個字節(jié)字母字母數(shù)字?jǐn)?shù)字下劃線下劃線157程序運行過程中,程序運行過程中,其值其值是否能被改變是否能被改變?變量變量是是常量常量不是不是2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2 基本數(shù)據(jù)類型和表

58、達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.3 變量變量u在程序運行期間其值可以改變的量稱為在程序運行期間其值可以改變的量稱為變量變量。一個變量應(yīng)該有一個名字一個變量應(yīng)該有一個名字在內(nèi)存中占據(jù)一定的存儲單元在內(nèi)存中占據(jù)一定的存儲單元在該存儲單元中存放變量的值。在該存儲單元中存放變量的值。u注:區(qū)分變量名和變量值這兩個不同的概念。注:區(qū)分變量名和變量值這兩個不同的概念。2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計2.2.3 變量變量變量的聲明和定義變量的聲明和定義u定義形式:數(shù)據(jù)類型定義形式:數(shù)據(jù)類型 變量名列表變量名列

59、表變量名是標(biāo)識符的一種,其名字必須遵循標(biāo)識符的命名規(guī)則。變量名是標(biāo)識符的一種,其名字必須遵循標(biāo)識符的命名規(guī)則。l一般地,變量名用小寫字母表示,與人們?nèi)粘A?xí)慣一致,以一般地,變量名用小寫字母表示,與人們?nèi)粘A?xí)慣一致,以 增加可讀性。應(yīng)注意變量名不能與增加可讀性。應(yīng)注意變量名不能與C+的關(guān)鍵字、系統(tǒng)函數(shù)的關(guān)鍵字、系統(tǒng)函數(shù) 名和類名相同名和類名相同u原則:先定義,后使用原則:先定義,后使用u例:例:float a,b,c,d,e; 表示:定義表示:定義a,b,c,d,e為單精度型變量,為單精度型變量, 注意各變量間以逗號分隔,最后是分號。注意各變量間以逗號分隔,最后是分號??梢栽诙x變量時指定它的初

60、值??梢栽诙x變量時指定它的初值。例:例:float a=83.5,b,c=64.5,d=81.2,e; /對變量對變量a,c,d指定了初值,指定了初值, /b和和e未指定初值未指定初值2.2 基本數(shù)據(jù)類型和表達(dá)式基本數(shù)據(jù)類型和表達(dá)式第二章第二章 C+簡單程序設(shè)計簡單程序設(shè)計uC+要求對變量作強制定義要求對變量作強制定義(先定義先定義,后使用后使用)目的是目的是: 凡未被事先定義的,不作為變量名,這就能保證程序中變凡未被事先定義的,不作為變量名,這就能保證程序中變 量名使用得正確。例如,如果在聲明部分寫了量名使用得正確。例如,如果在聲明部分寫了 int student; 而在執(zhí)行語句中錯寫成而在執(zhí)行語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論