版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)C++,授課老師:龔濤信息科學(xué)與技術(shù)學(xué)院2017年3月教材:《面向?qū)ο驝++卓越工程師案例教程》中國(guó)水利水電出版社,2017年5月出版參考開(kāi)發(fā)類書(shū)籍:《Visual C++程序員成長(zhǎng)攻略》 《C++ Builder程序員成長(zhǎng)攻略》,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,2,第2章 數(shù)據(jù)類型和表達(dá)式,,,,指針和引用,枚舉,數(shù)組,常量和變量,基本數(shù)據(jù)類
2、型,運(yùn)算符,類型定義、結(jié)構(gòu)和聯(lián)合,表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,3,C++語(yǔ)言的基本數(shù)據(jù)類型整型,說(shuō)明符為int字符型,說(shuō)明符為char浮點(diǎn)型(又稱實(shí)型),說(shuō)明符有3種:float:?jiǎn)尉雀↑c(diǎn)型double:雙精度浮點(diǎn)型long double:長(zhǎng)精度浮點(diǎn)型空值型,說(shuō)明符為void,用于函數(shù)和指針布爾型,說(shuō)明符為bool,取值只有true(真)和false(假)基本數(shù)據(jù)類型前可加以下修飾符(除了void和bo
3、ol類型外)signed表示有符號(hào)unsigned 表示無(wú)符號(hào)long表示長(zhǎng)型short表示短型,2.1 基本數(shù)據(jù)類型,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,4,表2-1 C++語(yǔ)言的基本數(shù)據(jù)類型,2.1 基本數(shù)據(jù)類型,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,5,表2-1 C++語(yǔ)言的基本數(shù)據(jù)類型(續(xù)),2.1 基本數(shù)據(jù)類型,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,6,[int]可以省略,在int前有修飾符
4、時(shí)可省略。單精度類型float、雙精度類型double和長(zhǎng)精度類型long double統(tǒng)稱為浮點(diǎn)類型。char型和各種int型有時(shí)又統(tǒng)稱為整數(shù)類型,char型變量在內(nèi)存中是以字符的ASCII碼值的形式存儲(chǔ)的。各種類型的長(zhǎng)度是以字節(jié)(B)為單位的,1個(gè)字節(jié)等于8個(gè)二進(jìn)制位(b)。bool型的 長(zhǎng)度在不同編譯系統(tǒng)中有所不同,在Visual C++ 6.0編譯系統(tǒng)中占1個(gè)字節(jié)。,表2-1的說(shuō)明,2.1 基本數(shù)據(jù)類型,龔濤,東華大學(xué)
5、信息科學(xué)與技術(shù)學(xué)院,7,2.2 常量和變量,第2章 數(shù)據(jù)類型和表達(dá)式,2.2.1 常量 常量是在程序中不被改變的量,在C++語(yǔ)言中常量常用符號(hào)表示,又稱為文字量。整型常量:十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量浮點(diǎn)型常量:小數(shù)表示法和科學(xué)表示法字符常量:一對(duì)單引號(hào)括起一個(gè)字符或反斜線符帶頭的ASCII碼值字符串 常量:連接、復(fù)制布爾常量:只有true和false兩種符號(hào)常量:可讀性、可維護(hù)性、只讀
6、變量(const),龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,8,2.2.2 變量,2.2 常量和變量,變量是在程序執(zhí)行中其值可以改變的量,變量有三個(gè)基本要素:名字、類型和值。變量的名字不能使用保留字見(jiàn)名知意多個(gè)單詞之間使用下劃線變量的類型:數(shù)據(jù)類型和存儲(chǔ)類變量的值:數(shù)據(jù)值和地址值變量的定義可以隨時(shí)定義變量 ;,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,9,2.3 數(shù)組,第2章 數(shù)據(jù)類型和表達(dá)式,2.3.1 數(shù)組的定義
7、 [][]…2.3.2 數(shù)組的賦值 數(shù)組的賦值是給數(shù)組的各個(gè)元素賦值。數(shù)組元素的表示C++語(yǔ)言中數(shù)組元素可用下標(biāo)表示,也可用指針表示。[][]…數(shù)組元素的賦初值在定義數(shù)組時(shí),可以給數(shù)組的各元素賦初值。數(shù)組元素的賦值,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,10,2.3.3 字符數(shù)組,2.3 數(shù)組,前述數(shù)組的定義和賦值也適用于字符數(shù)組。字符數(shù)組是指數(shù)組元素是char型的一種數(shù)組。一維字符數(shù)組可以用
8、來(lái)存放一個(gè)字符串,多維字符數(shù)組可以用來(lái)存放多個(gè)字符串。在將一個(gè)一維字符數(shù)組初始化為一個(gè)字符串時(shí),可用如下簡(jiǎn)捷方式: char s[5]="abcd";二維字符數(shù)組的初始化可以用前述初始值表的方法,也可以用字符串常量的方法。,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,11,2.4 枚舉,第2章 數(shù)據(jù)類型和表達(dá)式,2.4.1 枚舉類型和枚舉變量 枚舉是一種構(gòu)造的數(shù)據(jù)類型,它是若干個(gè)有名字的整型
9、常量的集合。 enum {};是由若干個(gè)枚舉符組成的,多個(gè)枚舉符之間用逗號(hào)分隔。每個(gè)枚舉符是一個(gè)用標(biāo)識(shí)符表示的整型常量,又稱為枚舉常量。每個(gè)枚舉符所表示的整型數(shù)值在默認(rèn)的情況下,最前邊一個(gè)為0,接著一個(gè)為1,后一個(gè)總是前一個(gè)的值加1。枚舉符的值可以在定義時(shí)被顯式賦值,被顯式賦值的枚舉符將獲得該值,沒(méi)被顯式賦值的枚舉符仍按默認(rèn)值,并按后一個(gè)是前一個(gè)值加1的規(guī)律。,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,12,2.4.2
10、 枚舉變量的值,2.4 枚舉,枚舉變量的值是該枚舉變量所屬的枚舉類型的枚舉表的某一個(gè)枚舉符。如果要用某個(gè)枚舉符所表示的整型值給枚舉變量賦值,就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。輸出某個(gè)枚舉變量的值總是整型數(shù)值,而不是枚舉符。如果要輸出其枚舉符,還需編程實(shí)現(xiàn)。采用枚舉變量會(huì)增加其可讀性,給一個(gè)簡(jiǎn)單數(shù)值命名為枚舉符,有助于“見(jiàn)名知意”。,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,13,2.5.1 指針指針是一種數(shù)據(jù)類型,具有指針類型的變量稱為指針變
11、量。(1) 什么是指針指針是用來(lái)存放某個(gè)變量的地址值的一種變量,指針變量所表示的數(shù)據(jù)值是某個(gè)變量在內(nèi)存中的地址值。指針存放哪個(gè)變量的地址值,它就指向那個(gè)變量。指針的類型是它所指向變量的類型,而不是指針本身數(shù)據(jù)值的類型,因?yàn)槿魏沃羔槺旧頂?shù)據(jù)值的類型都是unsigned long int型的。指針不僅可以指向各種類型的變量,還可以指向數(shù)組(也可以指向數(shù)組元素)、函數(shù)、文件,甚至也可以指向指針。,2.5 指針和引用,第2章 數(shù)據(jù)
12、類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,14,(2) 如何定義指針 * , * , …;定義一個(gè)指針后,系統(tǒng)便給指針?lè)峙湟粋€(gè)內(nèi)存單元,各種不同類型的指針被分配的內(nèi)存空間的大小是相同的,因?yàn)椴煌愋偷闹羔槾娣诺臄?shù)據(jù)值都是內(nèi)存地址值。(3) 指針的賦值任何一種類型的指針?biāo)x的值都是內(nèi)存地址值,但是不同類型指針的內(nèi)存地址值的表示不盡相同。一般變量、數(shù)組元素、結(jié)構(gòu)成員等其地址值都表示為變量名前加運(yùn)算符&。,2.5.1
13、 指針,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,15,(3) 指針的賦值數(shù)組的地址值用該數(shù)組名來(lái)表示,任何數(shù)組的數(shù)組名是一個(gè)常量指針,其值是該數(shù)組首元素的地址值。函數(shù)的地址值可用該函數(shù)的名字來(lái)表示,一個(gè)指向函數(shù)的指針可用它所指向的函數(shù)名字來(lái)賦值。定義了一個(gè)指針后,必須先給它賦值后才能引用,否則將有可能造成系統(tǒng)的故障。,2.5.1 指針,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,16,(4) 指針的運(yùn)
14、算指針是一種特殊的變量,指針運(yùn)算是很有限的。指針?biāo)试S的運(yùn)算有如下4種。賦值運(yùn)算可以將指針?biāo)赶虻淖兞康牡刂分蒂x給它,還可將數(shù)組名或函數(shù)在內(nèi)存中的入口地址值賦給所對(duì)應(yīng)的指針。對(duì)于暫時(shí)不用的指針,應(yīng)將0值賦給該指針(空指針)。指針賦值時(shí)要求類型和級(jí)別一致。一個(gè)指針可以加上或減去一個(gè)整數(shù)值。在一定條件下,兩個(gè)指針可以相減。在一定條件下,兩個(gè)指針可以比較。,2.5.1 指針,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技
15、術(shù)學(xué)院,17,在C++語(yǔ)言中,數(shù)組的元素可以用下標(biāo)表示,也可用指針表示,但是最好用指針表示,因?yàn)橹羔槺硎疽认聵?biāo)表示處理起來(lái)更快。 (1) 數(shù)組元素的指針表示下標(biāo)表示式a[i]用指針表示為*(a+i)。下標(biāo)表示式b[i][j]用指針表示為*(*(b+i)+j)。下標(biāo)表示式c[i][j][k]用指針表示為*(*(*(c+i)+j)+k)。,2.5.2 指針和數(shù)組,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,
16、18,例2.1 分析下列程序的輸出結(jié)果。#include void main(){ static int a[5]={5,4,3,2,1}; int i,j; i=a[0]+a[4]; j=*(a+2)+*(a+4); cout<<i<<endl<<j;},2.5.2 指針和數(shù)組,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,19,例2.2
17、 分析下列程序的輸出結(jié)果。#include void main(){ static char s1[]= "abcde" ,s2[5]={'m', 'n', 'p', 'q', '\0'}; char * ps=s1; cout<<s1<< " or " <
18、<s2; cout<< '\n'; cout<<s2[1]<<s2[2]<<s1[3]<<s1[4]<<endl; cout<<*ps<<*(ps+2)<<*(ps+4)<<*ps+2;},2.5.2 指針和數(shù)組,2.5 指針和引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,
19、20,指針數(shù)組數(shù)組元素為指針的稱為指針數(shù)組。指針數(shù)組的各個(gè)元素是相同類型的指針,可用同類型變量的地址值對(duì)它初始化或賦值??梢允褂弥羔様?shù)組名pa對(duì)數(shù)組a的各個(gè)元素進(jìn)行操作,pa是一個(gè)二級(jí)指針。指向數(shù)組的指針指向數(shù)組的指針是一個(gè)二級(jí)指針。一維數(shù)組可表示為一級(jí)指針,因此指向數(shù)組的指針是指向一級(jí)指針的指針,故為二級(jí)指針。指向一維數(shù)組的指針通常用一個(gè)二維數(shù)組的行地址。,(2) 指針數(shù)組和指向數(shù)組的指針,2.5.2 指針和數(shù)組,龔濤
20、,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,21,(1) 字符指針字符指針是指向字符串的指針,使用字符指針比字符數(shù)組對(duì)字符串操作更方便、靈活。字符指針可用字符串常量初始化和賦值,這比字符數(shù)組存放字符串更方便。(2) 字符指針數(shù)組字符指針數(shù)組是指元素為字符指針的數(shù)組。字符指針數(shù)組可用來(lái)存放多個(gè)字符串。,2.5 指針和引用,2.5.3 字符指針,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,22,(1) 什么是引用引用是某個(gè)已知變量或?qū)ο蟮膭e名。引
21、用不是變量,它自身沒(méi)有值,也沒(méi)有地址值,它不占有內(nèi)存空間。引用的值實(shí)際上是被引用的變量或?qū)ο蟮闹?,引用的地址值是被它引用的變量或?qū)ο蟮牡刂分怠R玫闹祵㈦S被引用的變量或?qū)ο蟮闹刀淖?,引用值的改變同時(shí)也將改變被它引用的變量或?qū)ο蟮闹怠?2.5 指針和引用,2.5.4 引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,23,創(chuàng)建引用的格式如下: &=;是被引用的變量或?qū)ο蟮念愋汀M瑯?biāo)識(shí)符,&是一個(gè)說(shuō)明符,說(shuō)明其后邊的標(biāo)
22、識(shí)符是引用名。在創(chuàng)建引用時(shí),必須給出被引用變量或?qū)ο蟮拿?,即?duì)引用進(jìn)行初始化。(3)引用的應(yīng)用 在C++語(yǔ)言中,引用作為函數(shù)的參數(shù)和返回值,引用作為函數(shù)參數(shù)比指針作為函數(shù)參數(shù)更方便、更直觀。,2.5.4 引用,(2) 如何創(chuàng)建引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,24,#include void main(){int a(5);int &ra=a;cout<<&qu
23、ot;a="<<a<<','<<"ra="<<ra<<endl;a+=5;cout<<"a="<<a<<','<<"ra="<<ra<<endl;ra+=5;cout<<&quo
24、t;a="<<a<<','<<"ra="<<ra<<endl;cout<<"&a="<<&a<<','<<"&ra="<<&ra<<endl;int b(-10);
25、ra=b;cout<<"a="<<a<<','<<"b="<<b<<','<<"ra="<<ra<<endl;cout<<"&a="<<&a<<',&
26、#39;<<"&b="<<&b<<','<<"&ra="<<&ra<<endl;},2.5 指針和引用,2.5.4 引用,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,25,2.6.1 算術(shù)運(yùn)算符(1) 普通算術(shù)運(yùn)算符單目: -,++,--雙目: +,-,*,/,% 注
27、意: ++和--運(yùn)算符具有副作用,前綴與后綴方式運(yùn)算的表達(dá)式值會(huì)不同。(2) 關(guān)系運(yùn)算符 雙目: >,=,<=,= =,!=(3) 邏輯運(yùn)算符單目: !雙目: &&,||,2.6 運(yùn)算符,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,26,(4) 位操作運(yùn)算符① 邏輯位運(yùn)算符單目: ~雙目: & | ^② 移位運(yùn)算符雙目>>
28、;,>=,<<=,&=,|=,^=注意: 賦值運(yùn)算符具有副作用。,2.6 運(yùn)算符,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,27,(6) 其他運(yùn)算符① 三目運(yùn)算符: ?和 :② 逗號(hào)運(yùn)算符: ,③ 獲取字節(jié)數(shù)運(yùn)算符: sizeof④ 強(qiáng)制類型運(yùn)算符: (〈類型〉)〈表達(dá)式〉或〈類型〉(〈表達(dá)式〉)⑤ 取地址運(yùn)算符&和取內(nèi)容運(yùn)算符*⑥ 數(shù)組下標(biāo)運(yùn)算符
29、: [ ]⑦ 改變優(yōu)先級(jí)運(yùn)算符:( )⑧ 成員選擇運(yùn)算符: ·和->,2.6 運(yùn)算符,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,28,(7) C++語(yǔ)言增加的運(yùn)算符① 作用域運(yùn)算符:∷② 成員指針選擇符: ·*和->*③ 創(chuàng)建堆對(duì)象運(yùn)算符: new和釋放堆對(duì)象運(yùn)算符delete2.6.2 運(yùn)算符的優(yōu)先級(jí)及結(jié)合性 見(jiàn)教材第46頁(yè)的表2.3。,2
30、.6 運(yùn)算符,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,29,2.7.1 表達(dá)式的種類 表達(dá)式是由運(yùn)算符和操作數(shù)組成的式子,操作數(shù)包含了常量、變量、函數(shù)和其他一些命名的標(biāo)識(shí)符。最簡(jiǎn)單的表達(dá)式是常量或變量。算術(shù)表達(dá)式:a+5.2/3.0-9%5邏輯表達(dá)式:!a&&8||7關(guān)系表達(dá)式:'m'>='x'賦值表達(dá)式:a=7條件表達(dá)式:
31、a>4?++a:- -a逗號(hào)表達(dá)式:a+5, a=7, a+=4,2.7 表達(dá)式,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,30,(1) 算術(shù)表達(dá)式算術(shù)表達(dá)式是由算術(shù)運(yùn)算符和位操作運(yùn)算符組成的表達(dá)式,其表達(dá)式的值是一個(gè)數(shù)值,表達(dá)式的類型具體由運(yùn)算符和操作數(shù)確定。一般的算術(shù)表達(dá)式中,各個(gè)操作數(shù)的類型相同時(shí),表達(dá)式的類型是操作數(shù)的類型;當(dāng)各個(gè)操作數(shù)的類型不同時(shí),表達(dá)式的類型是操作數(shù)中類型最高的操作數(shù)的類型。
32、位操作運(yùn)算符組成的表達(dá)式中,由于操作數(shù)都是int型,因此表達(dá)式的值也是int型。,2.7 表達(dá)式,2.7.2 表達(dá)式的值和類型,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,31,(2) 關(guān)系表達(dá)式由關(guān)系運(yùn)算符組成的表達(dá)式為關(guān)系表達(dá)式。關(guān)系表達(dá)式常用作條件語(yǔ)句和循環(huán)語(yǔ)句中的條件表達(dá)式。關(guān)系表達(dá)式值的類型是邏輯類型。(3) 邏輯表達(dá)式由邏輯運(yùn)算符組成的表達(dá)式為邏輯表達(dá)式。邏輯表達(dá)式值的類型為邏輯型。只對(duì)能夠確定整個(gè)表達(dá)式值所需要的
33、最少數(shù)目的子表達(dá)式(操作數(shù))進(jìn)行計(jì)算。,2.7 表達(dá)式,2.7.2 表達(dá)式的值和類型,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,32,(4) 條件表達(dá)式由三目運(yùn)算符組成的表達(dá)式為條件表達(dá)式。三目運(yùn)算符具有if-else語(yǔ)句的功能。(5) 賦值表達(dá)式由賦值運(yùn)算符組成的表達(dá)式為賦值表達(dá)式。一個(gè)基本賦值運(yùn)算符10個(gè)復(fù)合賦值運(yùn)算符(6) 逗號(hào)表達(dá)式用逗號(hào)將若干個(gè)表達(dá)式連起來(lái)的表達(dá)式為逗號(hào)表達(dá)式。其值和類型是最后一個(gè)表達(dá)式的值和類型
34、。,2.7 表達(dá)式,2.7.2 表達(dá)式的值和類型,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,33,(1) 隱含轉(zhuǎn)換一般地,對(duì)雙目運(yùn)算中的算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位操作運(yùn)算符組成的表達(dá)式,要求兩個(gè)操作數(shù)的類型一致。如果操作數(shù)的類型不一致,則轉(zhuǎn)換為較高的類型。各種類型的高低順序如下:int→ unsigned→long →unsigned long →double↑
35、 ↑short, char float(2) 強(qiáng)制轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換將某種類型強(qiáng)制性地轉(zhuǎn)換為指定的類型,強(qiáng)制轉(zhuǎn)換分為顯式強(qiáng)制轉(zhuǎn)換和隱式強(qiáng)制轉(zhuǎn)換。顯式強(qiáng)制轉(zhuǎn)換的格式: () 和 () ,2.7 表達(dá)式,2.7.3 表達(dá)式中的
36、類型轉(zhuǎn)換,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,34,顯式強(qiáng)制轉(zhuǎn)換的不安全性和暫時(shí)性顯式強(qiáng)制轉(zhuǎn)換不安全,因?yàn)檫@種強(qiáng)制轉(zhuǎn)換可能會(huì)將高類型轉(zhuǎn)換為低類型,導(dǎo)致數(shù)據(jù)精度的丟失。顯式強(qiáng)制轉(zhuǎn)換是暫時(shí)性的,是“一次性”的。隱式強(qiáng)制轉(zhuǎn)換在賦值表達(dá)式中,當(dāng)左值(賦值運(yùn)算符左邊的值)和右值(賦值運(yùn)算符右邊的值)類型不同時(shí),一律將右值類型強(qiáng)制轉(zhuǎn)換為左值的類型。在函數(shù)有返回值的調(diào)用中,當(dāng)return后面的表達(dá)式的類型與函數(shù)的類型不一致時(shí),總是將retur
37、n后面的表達(dá)式的類型強(qiáng)制轉(zhuǎn)換為該函數(shù)的類型。,2.7 表達(dá)式,2.7.3 表達(dá)式中的類型轉(zhuǎn)換,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,35,例2.17 編譯下列程序時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤。#include void main(){ int a(5), b; char c('k'); float d=99.67; //1 b=c; cout<<b<<endl
38、; c=d; //2 cout<<c<<endl; a=d-1; //3 cout<<(char)a<<endl;},2.7 表達(dá)式,2.7.3 表達(dá)式中的類型轉(zhuǎn)換,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,36,C++語(yǔ)言的數(shù)據(jù)類型:① 基本數(shù)據(jù)類型② 構(gòu)造類型:數(shù)組、枚舉、類、結(jié)構(gòu)和聯(lián)合③
39、 自定義類型:通過(guò)類型定義語(yǔ)句來(lái)定義一些“新”類型,這些新類型只是現(xiàn)有類型的同義詞。格式:typedef ;自定義類型的作用主要有如下幾種:① 改善程序的可讀性,增加所定義變量的信息。② 減少定義變量的繁瑣度,即達(dá)到書(shū)寫(xiě)簡(jiǎn)練的目的。③ 提高程序的可移植性。,2.8 類型定義,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,37,2.9.1 結(jié)構(gòu)(1) 結(jié)構(gòu)和結(jié)構(gòu)變量的定義 結(jié)構(gòu)是一種類型,具有結(jié)
40、構(gòu)類型的變量稱為結(jié)構(gòu)變量。 定義結(jié)構(gòu)類型的格式如下: struct { }; 定義結(jié)構(gòu)變量的格式如下: struct ;,2.9 結(jié)構(gòu)和聯(lián)合,第2章 數(shù)據(jù)類型和表達(dá)式,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,38,(2) 結(jié)構(gòu)變量成員的表示和賦值結(jié)構(gòu)變量成員的表示 一般結(jié)構(gòu)變量的成員表示格式如下: . 指向結(jié)構(gòu)變量的指針
41、的成員表示格式如下: ->或者 (*). 結(jié)構(gòu)數(shù)組元素的成員表示格式如下: [] .,2.9.1 結(jié)構(gòu),2.9 結(jié)構(gòu)和聯(lián)合,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,39,結(jié)構(gòu)變量的初始化 在定義結(jié)構(gòu)變量時(shí)可以進(jìn)行初始化,其方法是使用初始值表,即給該結(jié)構(gòu)變量的各個(gè)成員賦初值。結(jié)構(gòu)變量賦值方法結(jié)構(gòu)變量的賦值是對(duì)結(jié)構(gòu)變量的各個(gè)成員的賦值。同一個(gè)結(jié)構(gòu)類型的兩個(gè)結(jié)構(gòu)變量可以賦值,一個(gè)
42、結(jié)構(gòu)變量的地址值可以賦給指向該結(jié)構(gòu)類型的結(jié)構(gòu)變量的指針。(3) 結(jié)構(gòu)變量在程序中的應(yīng)用結(jié)構(gòu)變量可作為結(jié)構(gòu)類型的成員結(jié)構(gòu)變量可作為數(shù)組元素結(jié)構(gòu)變量和指向結(jié)構(gòu)變量的指針都可作為函數(shù)參數(shù)和返回值。,2.9.1 結(jié)構(gòu),2.9 結(jié)構(gòu)和聯(lián)合,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,40,(1) 聯(lián)合的概念聯(lián)合類型與結(jié)構(gòu)類型在形式上有許多相似之處。在定義上,除了聯(lián)合使用關(guān)鍵字union不同于結(jié)構(gòu)外,其余相同,包括聯(lián)合類型的定義和聯(lián)合變量的定義
43、。其格式如下:union { };union ;聯(lián)合與結(jié)構(gòu)的最大區(qū)別是:結(jié)構(gòu)成員各自占有內(nèi)存單元,即異址;而聯(lián)合成員是共址的,即所有的聯(lián)合成員共用一個(gè)內(nèi)存單元。該單元的大小與聯(lián)合中數(shù)據(jù)長(zhǎng)度最長(zhǎng)的相同。,2.9.2 聯(lián)合,2.9 結(jié)構(gòu)和聯(lián)合,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,41,由于聯(lián)合是共址的,因此,在某一個(gè)時(shí)刻聯(lián)合變量的各個(gè)成員中只有一個(gè)是有效的。在給聯(lián)合變量賦值時(shí),只保留最近一次的值。(2) 聯(lián)合在程序中
44、的應(yīng)用聯(lián)合類型由于其成員是共址的,在某些運(yùn)算中受到限制,因此,它不像結(jié)構(gòu)、數(shù)組的使用那么廣泛。聯(lián)合變量只可作為結(jié)構(gòu)的成員和數(shù)組的元素,指向聯(lián)合變量的指針可作為函數(shù)參數(shù)。,2.9.2 聯(lián)合,2.9 結(jié)構(gòu)和聯(lián)合,龔濤,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,42,答疑聯(lián)系信息,辦公室電話:021-67792312手機(jī):18201798064QQ:5763698E-mail:taogong@dhu.edu.cn辦公室地址:2號(hào)學(xué)院樓216
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 利用ftp在因特網(wǎng)上傳輸文件
- 在internet上傳輸文件-河南中醫(yī)學(xué)院精品課程網(wǎng)
- 基于Internet多媒體的文件的信息隱形傳輸.pdf
- 數(shù)字電視在HFC網(wǎng)絡(luò)上傳輸?shù)难芯?pdf
- (網(wǎng)上傳輸)
- 上傳文件2
- 視頻會(huì)議Internet網(wǎng)絡(luò)傳輸研究.pdf
- 網(wǎng)絡(luò)文件傳輸機(jī)制探析
- struts2上傳文件
- 網(wǎng)絡(luò)機(jī)器人基于Internet視頻傳輸.pdf
- 網(wǎng)絡(luò)文件傳輸技術(shù)【文獻(xiàn)綜述】
- IP語(yǔ)音在Internet上有效傳輸?shù)难芯?pdf
- 基于Internet的網(wǎng)絡(luò)考試系統(tǒng)網(wǎng)絡(luò)傳輸安全的研究和實(shí)現(xiàn).pdf
- 文件轉(zhuǎn)檔及上傳操作
- csv文件上傳數(shù)據(jù)庫(kù)
- 光網(wǎng)絡(luò)信息傳輸技術(shù)
- 信息處理平臺(tái)仿真顯示和網(wǎng)絡(luò)文件傳輸?shù)膶?shí)現(xiàn).pdf
- 在以太網(wǎng)上傳輸ppp的方法(rfc2516)
- 中華網(wǎng)庫(kù)上傳ftp文件
- 怎樣上傳新浪愛(ài)問(wèn)大文件
評(píng)論
0/150
提交評(píng)論