數(shù)據(jù)類(lèi)型與表達(dá)式.ppt_第1頁(yè)
數(shù)據(jù)類(lèi)型與表達(dá)式.ppt_第2頁(yè)
數(shù)據(jù)類(lèi)型與表達(dá)式.ppt_第3頁(yè)
數(shù)據(jù)類(lèi)型與表達(dá)式.ppt_第4頁(yè)
數(shù)據(jù)類(lèi)型與表達(dá)式.ppt_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,學(xué)習(xí)目標(biāo),掌握各種基本數(shù)據(jù)類(lèi)型的定義名、長(zhǎng)度、表示范圍; 掌握各種類(lèi)型的數(shù)值的表示; 弄清變量以及變量賦值的實(shí)質(zhì),標(biāo)識(shí)符的構(gòu)成規(guī)則,會(huì)定義各種類(lèi)型的變量以及定義變量的初值; 弄清變量與常量,三種常量之間的區(qū)別; 掌握常用運(yùn)算符的含義、優(yōu)先級(jí)、結(jié)合性、使用方法; 理解表達(dá)式的構(gòu)成規(guī)則、表達(dá)式的左值和右值的含義,會(huì)根據(jù)計(jì)算式寫(xiě)出相應(yīng)的表達(dá)式; 掌握隱式類(lèi)型轉(zhuǎn)換和顯式類(lèi)型轉(zhuǎn)換的概念和使用方式,能夠使用顯式類(lèi)型轉(zhuǎn)換強(qiáng)制進(jìn)行表達(dá)式值的轉(zhuǎn)換。,C+語(yǔ)言程序設(shè)計(jì)教程

2、 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,2.1 數(shù)據(jù)類(lèi)型概述,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,2.2 基本數(shù)據(jù)類(lèi)型,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.2.1 字符集,字符集是構(gòu)成C+程序語(yǔ)句的最小元素。字符集由下列各類(lèi)字符構(gòu)成:,(1) 英文字母 AZ, az,(2) 數(shù)字 0-9,(3) 特殊字符:,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,2.2.2 基本數(shù)據(jù)類(lèi)型,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,表中符號(hào) 表示可選,表示其中的內(nèi)容可以缺省,也有默認(rèn)的意思。如sig

3、ned char表示char類(lèi)型默認(rèn)為signed char;使用類(lèi)型名定義一個(gè)變量時(shí),中的內(nèi)容可以省略。,整型int默認(rèn)為有符號(hào)整型,即:類(lèi)型signed int與int相同,所以signed short int、signed long int分別與short int、long int相同。,如果int型有長(zhǎng)短修飾或符號(hào)修飾時(shí),int也可缺省。,符號(hào)的類(lèi)型修飾signed, unsigned與長(zhǎng)短的修飾short,long可以隨意組合,且前后順序隨意。,整型數(shù)據(jù)的長(zhǎng)度(存儲(chǔ)空間)隨系統(tǒng)的不同而不同,在16位系統(tǒng)下如DOS,其長(zhǎng)度與短整型相同,占有16bit。在32位系統(tǒng)如Linux、Unix

4、、Windows NT系統(tǒng)下,長(zhǎng)度為32bit。表中的整型是32位系統(tǒng)下的整型。,有效位數(shù)欄中的數(shù)據(jù)是指浮點(diǎn)數(shù)十進(jìn)制的有效位數(shù),包括整數(shù)與小數(shù)部分。,空值型void用于描述沒(méi)有返回值的函數(shù)以及通用指針類(lèi)型。,有的編譯器如visual C+對(duì)long double采用8字節(jié)存儲(chǔ)。,C+中提供wchar_t類(lèi)型,用于描述像漢字這樣的大字符集。漢字字符集有簡(jiǎn)體字符集GB2312、繁體字符集Big5。在C+中,對(duì)于大字符集字符可用多個(gè)char類(lèi)型的數(shù)據(jù)來(lái)實(shí)現(xiàn),wchar_t類(lèi)型主要用在國(guó)際化程序的實(shí)現(xiàn)中。 。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,2.3 數(shù)值,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)

5、類(lèi)型與表達(dá)式,數(shù)值就是指直接參加運(yùn)算的數(shù)。在有的書(shū)上稱(chēng)為文字常量(literal constant)或常量。文字是程序中直接用符號(hào)表示的數(shù)值,常量是指在程序運(yùn)行過(guò)程中,其值不能被改變的量。出現(xiàn)在程序中的數(shù)值在程序運(yùn)行過(guò)程中是不能被改變的,故稱(chēng)之為文字常量。通俗說(shuō),文字常量就是數(shù)值。,2.3.1 整型數(shù),各種進(jìn)制的整數(shù)表示如下:,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,以0 x或0X開(kāi)頭, 數(shù)字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中英文字母AF代表的值為1015。 如:0 x12B表示十六進(jìn)制數(shù)(12B)16,其

6、值為:1162+2161+11160,等于十進(jìn)制數(shù)299。-0 x17等于十進(jìn)制數(shù)-23。 十六進(jìn)制使用的英文字母除了使用大寫(xiě)字母外還可以使用a、b、c、d、e、f小寫(xiě)字母,并且大小寫(xiě)可以混用。,(3)十六進(jìn)制整數(shù),注意: 各進(jìn)制數(shù)只能使用其規(guī)定的數(shù)字, 進(jìn)制使用的數(shù)字為0N-1。如0128是不合法的八進(jìn)制數(shù),因?yàn)?不是八進(jìn)制所使用的數(shù)字。 八進(jìn)制整數(shù)前不能省略0,省略了0就是十進(jìn)制數(shù)。,各種類(lèi)型整數(shù)的表示,(1)基本整型數(shù),基本整型數(shù)不需要在數(shù)字后加任何后綴。在16位系統(tǒng)下,整型數(shù)的長(zhǎng)度為16bit(2字節(jié)) 如:12、-1235等是用十進(jìn)制表示的整型數(shù)。如0 xc、0 xfb2d是用十六進(jìn)

7、制表示的整型數(shù),其值分別為12、-1235。 在32位系統(tǒng)下,長(zhǎng)度為32bit(4字節(jié)),如:12、-1235等。12、-1235用十六進(jìn)制表示分別為0 xc、0 xfffffb2d。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,長(zhǎng)整型的長(zhǎng)度與取值范圍與32位系統(tǒng)下的基本整型一樣。表示方法則是在數(shù)字后加l或L做標(biāo)記。如:345667L、-123L、12l。,(2) 長(zhǎng)整型數(shù),注意: 為了區(qū)別表示長(zhǎng)整型數(shù)字母l與數(shù)字1,一般使用大寫(xiě)L; 在定義一個(gè)整型數(shù)時(shí),不管采用哪種進(jìn)制形式,都不要超過(guò)其表示范圍。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C

8、+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,(1) 十進(jìn)制數(shù)形式,由09和小數(shù)點(diǎn)組成。如:23.456、-12.3等。,(2) 指數(shù)形式,表示格式為:,2.3.2 浮點(diǎn)型數(shù),浮點(diǎn)型數(shù)即我們平常使用的實(shí)型數(shù),由整數(shù)部分和小數(shù)部分組成。通常有兩種表示形式:,十進(jìn)制浮點(diǎn)型數(shù)基本整型數(shù)1 E 基本整型數(shù)2,符號(hào) | 表示“或”。,十進(jìn)制浮點(diǎn)型數(shù)與基本整型數(shù)1是尾數(shù);,E或e代表底數(shù)10;,基本整型數(shù)2為指數(shù)。如:1.3e4、-12.5e-4分別表示1.3104和-12.510-4。,注意: 當(dāng)以指數(shù)形式表示一個(gè)實(shí)數(shù)時(shí),整數(shù)部分和小數(shù)部分可以省略其一,但不能都省略。如.123E5、123.E-6都是正

9、確的,但不能寫(xiě)成E-2這種形式。 浮點(diǎn)數(shù)默認(rèn)為雙精度浮點(diǎn)型,在內(nèi)存中占8個(gè)字節(jié),取值范圍為1.7e308。如果帶有后綴F或f, 則為float類(lèi)型,在內(nèi)存中占4個(gè)字節(jié),取值范圍為3.4e38,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,轉(zhuǎn)義符形式1:,2.3.3 字符型數(shù),字符數(shù)是用英文單引號(hào)括起來(lái)的一個(gè)字符。如:a,A等。,字符助記符,有些ASCII碼字符如回車(chē)、退格等不能直接用在用單引號(hào)中。這些數(shù)據(jù)可用轉(zhuǎn)義序列來(lái)表示 :,轉(zhuǎn)義符形式2:,字符助記符只有一個(gè)字母,例如n、t分別為newline(換行符)、table(制表符)的助記符。故n、t分

10、別表示換行符與制表符。,字符的ASCII碼值,字符的ASCII碼值的形式為ooo與xhh, 其中ooo表示3位八進(jìn)制數(shù),xhh表示2位十六進(jìn)制數(shù)。例如, 制表符table用第2種形式的轉(zhuǎn)義序列表示為011或x09。ooo中,ooo為不超過(guò)3位的八進(jìn)制數(shù)字,可以不以0開(kāi)頭。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,常用預(yù)定義的轉(zhuǎn)義序列,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,轉(zhuǎn)義序列的用法舉例,運(yùn)行結(jié)果,A;B;C;D;E;F;屯屯,注意: 由于一個(gè)漢字字符包括兩個(gè)字符,因此不能在單引號(hào)中使用漢字。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)

11、式,This is a stringn,字符串與字符比較的區(qū)別:,2.3.4 字符串,字符串?dāng)?shù)值簡(jiǎn)稱(chēng)字符串,是使用一對(duì)雙引號(hào)括起來(lái)的字符序列。例如, 英文串:,中文串: 我們都是中國(guó)人t我們熱愛(ài)自己的祖國(guó)n,(1) 字符由單引號(hào)括起來(lái),字符串由雙引號(hào)括起來(lái)。如:a與a分別表示a字符與a這個(gè)字符串。 (2) 字符只能是單個(gè)字符,字符串則可是零個(gè)或多個(gè)字符。如:abd是不合法的。但是合法的,表示空串。 (3) 字符占一個(gè)字節(jié)的內(nèi)存空間,字符串占內(nèi)存字節(jié)數(shù)等于字符串的長(zhǎng)度加1。系統(tǒng)自動(dòng)在字符串末尾添加0作為結(jié)束標(biāo)記。如:a在內(nèi)存中占用一個(gè)字節(jié);而a 在內(nèi)存中占用兩個(gè)字節(jié),分別存放a和0。,2.3.5

12、 布爾型數(shù),布爾型數(shù)值只有兩個(gè):true(真)和false(假)。在C+的算術(shù)運(yùn)算式中,把布爾型數(shù)據(jù)當(dāng)作整型數(shù)據(jù),true與false分別當(dāng)作1與0。在邏輯運(yùn)算式中則把非0數(shù)據(jù)當(dāng)成true, 把0當(dāng)成false。,注意: 不能將true與false寫(xiě)成TRUE與FALSE。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,2.4 變量,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,變量是存儲(chǔ)數(shù)據(jù)的內(nèi)存區(qū)域,變量名是這塊區(qū)域的名字或助記符。變量之所以叫變量是因?yàn)樵诔绦蜻\(yùn)行的過(guò)程中變量標(biāo)識(shí)的內(nèi)存區(qū)中的數(shù)據(jù)可以改變。在C+中變量取名要遵循標(biāo)識(shí)符的構(gòu)成規(guī)則。,2.4.1 標(biāo)識(shí)符與關(guān)鍵字,標(biāo)識(shí)符用來(lái)標(biāo)識(shí)程

13、序中的一些實(shí)體。標(biāo)識(shí)符的構(gòu)成規(guī)則如下:,(1) 以大寫(xiě)字母、小寫(xiě)字母或下劃線_開(kāi)頭;,(2) 可以由大寫(xiě)字母、小寫(xiě)字母、下劃線、數(shù)字組成;,(3) 大寫(xiě)字母與小寫(xiě)字母分別代表不同的標(biāo)識(shí)符;,(4) 不能是C+的關(guān)鍵字。,C+的關(guān)鍵字是C+預(yù)定義的單詞,也叫保留字,意思是為C+語(yǔ)言保留,不能用作標(biāo)識(shí)符。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+的關(guān)鍵字表,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,變量定義的一般格式為:,例如: int sum, area; float x,y,z;,給變量賦

14、初值的格式如下:,2.4.2 變量的定義與賦初值,數(shù)據(jù)類(lèi)型 變量名1,變量名2,變量名n;,數(shù)據(jù)類(lèi)型 變量名1=初值1,變量名2=初值2,變量名n=初值n;,例如: int sum=100; double pi=3.1416; char c1=a, c2=b;,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,變量定義的l另一種格式為:,例如: int sum(100); double pi(3.1416); char c1(a), c2(b);,數(shù)據(jù)類(lèi)型 變量名1(初值1),變量名2(初值2),變量名n(初值n);,2.4 常量,常量是指在程序運(yùn)行過(guò)

15、程中,其值不能被改變的量。因此,一個(gè)具體的數(shù)值稱(chēng)為文字常量。如:i=255; area=r*r*3.14;,在程序中直接使用數(shù)值有兩個(gè)問(wèn)題:,(1)可讀性差 ;,(2)可維護(hù)性差 ;,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,C+符號(hào)常量的定義形式如下:,例如: #define MaxChar 255 #define PI 3.14,2.5.1 符號(hào)常量,#define 符號(hào)常量名 數(shù)值,注意: 定義符號(hào)常量時(shí)不能用賦值符,#define PI=3.14是錯(cuò)誤的。 由于define 是預(yù)處理指令,語(yǔ)句不能以分號(hào)結(jié)尾。,C+為符號(hào)常量提供了一種新

16、方法,格式為:,2.5.2 常變量,const 數(shù)據(jù)類(lèi)型 符號(hào)常量名 = 數(shù)值;,const可以與數(shù)據(jù)類(lèi)型說(shuō)明顛倒。,用const修飾后,變量的值就不能改變了,實(shí)質(zhì)上是一種“常變量”。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,例如: const short int MaxChar=255; const float PI=3.14;,三種常量比較表:,與直接使用文字常量相比,使用符號(hào)常量增強(qiáng)了程序的可讀性,可維護(hù)性。,常變量與變量定義的格式相似,使程序保持良好的風(fēng)格。,常變量可以按照不同的需要選擇合適的數(shù)據(jù)類(lèi)型,節(jié)省內(nèi)存空間,在運(yùn)算式中有明確的

17、類(lèi)型。,注意: 在定義常變量時(shí)一定要賦初值。 例如:const float PI; /錯(cuò)誤,定義時(shí)沒(méi)有給出初值 常變量不是變量,在程序中間不能更新其值。 例如:PI= 3.14159; /錯(cuò)誤!常量不能被改變,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,運(yùn)算符是描述對(duì)數(shù)據(jù)進(jìn)行的運(yùn)算(操作)、體現(xiàn)數(shù)據(jù)之間運(yùn)算關(guān)系的符號(hào),運(yùn)算符也叫操作符。 表達(dá)式是運(yùn)算符與數(shù)據(jù)連接起來(lái)的表達(dá)運(yùn)算的式子,表達(dá)式也稱(chēng)運(yùn)算式。,優(yōu)先級(jí)是指表達(dá)式中運(yùn)算符運(yùn)算的順序。當(dāng)一個(gè)表達(dá)式中包含多個(gè)運(yùn)算符時(shí),先進(jìn)行優(yōu)先級(jí)高的運(yùn)算,再進(jìn)行優(yōu)先級(jí)低的運(yùn)算。如果表達(dá)式中出現(xiàn)了多個(gè)相同優(yōu)先級(jí)的

18、運(yùn)算,運(yùn)算順序就要看運(yùn)算符的結(jié)合性了。 結(jié)合性是指操作數(shù)左右兩邊運(yùn)算符的優(yōu)先級(jí)相同時(shí),優(yōu)先和哪個(gè)運(yùn)算符結(jié)合起來(lái),進(jìn)行運(yùn)算。運(yùn)算符的結(jié)合順序有兩種:左結(jié)合和右結(jié)合。,2.6.1 優(yōu)先級(jí)與結(jié)合性,左結(jié)合,num1 op1 num2 op2 num3 (num1 op1 num2) op2 num3,右結(jié)合,num1 op1 num2 op2 num3 num1 op1 (num2 op2 num3),2.6 運(yùn)算符與表達(dá)式,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,基本算術(shù)運(yùn)算符及其含義:,表中優(yōu)先級(jí)數(shù)字小的優(yōu)先級(jí)高,(1) 算術(shù)運(yùn)算符的意義、優(yōu)先

19、級(jí)與數(shù)學(xué)中一致:+(正號(hào)), -(負(fù)號(hào))是一元運(yùn)算,優(yōu)先級(jí)高于二元運(yùn)算,*、/、%優(yōu)先級(jí)高于+(加)、-(減)運(yùn)算。,例如:a=10; b=5; a+b*-1; 得到結(jié)果5,(2) %要求兩個(gè)操作數(shù)的值必須是整數(shù)或字符型數(shù)。“操作數(shù)1%操作數(shù)2”計(jì)算結(jié)果是操作數(shù)1被操作數(shù)2除的余數(shù)。當(dāng)兩個(gè)操作數(shù)都是正數(shù)時(shí),結(jié)果為正;如果有一個(gè)(或兩個(gè))操作數(shù)為負(fù),余數(shù)的符號(hào)取決于機(jī)器。,21%6 /結(jié)果是3 4%2 /結(jié)果是0 21%-5 /機(jī)器相關(guān):結(jié)果為-1或1,2.6.2 算術(shù)運(yùn)算符,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,基本算術(shù)運(yùn)算符及其含義:,2

20、.6.2算術(shù)運(yùn)算符,(3) 當(dāng)/運(yùn)算符用于兩個(gè)整數(shù)相除時(shí),如果商含有小數(shù)部分,將被截掉。如果要進(jìn)行通常意義的除運(yùn)算,則至少應(yīng)保證除數(shù)或被除數(shù)中有一個(gè)是浮點(diǎn)數(shù)或雙精度數(shù)。,(4) 在使用算術(shù)運(yùn)算符時(shí),需要注意有關(guān)算術(shù)表達(dá)式求值溢出的處理問(wèn)題;,5/4 /結(jié)果是1 4/5 /結(jié)果是0 5/4.0 /結(jié)果是1.25 4.0/5 /結(jié)果是0.8,short i=32767,j,k; j=i+1; k=i+2; coutj=j , k=kendl; 執(zhí)行結(jié)果為:j=-32768, k=-32767,注意: 在書(shū)寫(xiě)除法運(yùn)算式時(shí),通常將參加運(yùn)算的整數(shù)值后補(bǔ)上小數(shù)點(diǎn)與0作為雙精度(double)常量參加運(yùn)算。

21、,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,關(guān)系運(yùn)算符及其含義:,2.6.3 關(guān)系運(yùn)算符,(1)若關(guān)系運(yùn)算符的計(jì)算結(jié)果繼續(xù)用在表達(dá)式中,true與false分別當(dāng)成了1與0。 。,(2)關(guān)系運(yùn)算符的操作數(shù)可以是任何基本數(shù)據(jù)類(lèi)型的數(shù)據(jù),但由于實(shí)數(shù)(float)在計(jì)算機(jī)中只能近似地表示一個(gè)數(shù),所以,一般不能直接進(jìn)行比較。當(dāng)需要對(duì)兩個(gè)實(shí)數(shù)進(jìn)行=、!=比較時(shí),通常的做法是指定一個(gè)極小的精度值,若兩實(shí)數(shù)的差在這個(gè)精度之內(nèi)時(shí),就認(rèn)為兩實(shí)數(shù)相等,否則為不等。,x=y 應(yīng)寫(xiě)成 fabs(x-y)1e-6 /fabs(x)求double類(lèi)型數(shù)x的絕對(duì)值,(3)關(guān)

22、系表達(dá)式就是由關(guān)系運(yùn)算符將兩個(gè)操作數(shù)連接起來(lái)的式子。這兩個(gè)操作數(shù)可以為常量、變量、算術(shù)表達(dá)式等。,例如:a+bc+d ab=cd a = bc,注意: 關(guān)系運(yùn)算符的比較運(yùn)算是由兩個(gè)等號(hào)組成,不要誤寫(xiě)為賦值運(yùn)算符=。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,邏輯運(yùn)算符操作數(shù)類(lèi)型為bool型,返回類(lèi)型亦為bool型。,2.6.4 邏輯運(yùn)算符,(1)邏輯運(yùn)算符的操作數(shù)為bool型,當(dāng)為其它數(shù)據(jù)類(lèi)型時(shí),將它轉(zhuǎn)換成bool值參加運(yùn)算。,(2) C+對(duì)于二元運(yùn)算符 二進(jìn)制表示分別為10000111和 00101011。,(4)運(yùn)算符 將兩個(gè)操作數(shù)對(duì)應(yīng)位逐

23、一地進(jìn)行邏輯異或運(yùn)算。邏輯異或運(yùn)算的規(guī)則為“同則零,異則壹”,即兩個(gè)數(shù)只要不同,則其邏輯異或的結(jié)果就為1;否則為0。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.5 位運(yùn)算符,(5) 運(yùn)算符 將左操作數(shù)向左移動(dòng)其右操作數(shù)所指定的位數(shù),移出的位補(bǔ)以0。將一個(gè)數(shù)左移一位,相當(dāng)將該數(shù)乘以2;左移兩位,相當(dāng)將該數(shù)乘以4。一般說(shuō)來(lái),將一個(gè)數(shù)左移n位,就相當(dāng)將該數(shù)乘以2n。所以,在程序中,常用左移位來(lái)進(jìn)行快速的乘法運(yùn)算。,(6) 將左操作數(shù)向右移動(dòng)其右操作數(shù)所要求的位數(shù),移出的位補(bǔ)以0。將一個(gè)數(shù)右移n位,相當(dāng)于將該數(shù)除以2n。這與整型和字符型數(shù)據(jù)的除

24、法運(yùn)算完全一致,所以在程序中常用右移位來(lái)進(jìn)行快速的除法運(yùn)算。,注意: 位運(yùn)算符是對(duì)其操作數(shù)按其二進(jìn)制形式逐位地進(jìn)行邏輯運(yùn)算或移位操作的, 運(yùn)算對(duì)象為bool、char、short、int等類(lèi)型數(shù), 但不得是實(shí)型數(shù)據(jù)。 用移位方法進(jìn)行乘法運(yùn)算時(shí),同樣要注意溢出問(wèn)題。 按位左移運(yùn)算符與插入運(yùn)算符同形(同一個(gè)符號(hào)),按位右移運(yùn)算符與提取運(yùn)算符同形。那么編譯器是如何來(lái)區(qū)分cout73;是將7左移3位,還是向屏幕上輸出7、3呢? 編譯器將把該表達(dá)式解釋成向屏幕輸出7、3,這是由于cout是C+語(yǔ)言中預(yù)定義的輸出流類(lèi)的對(duì)象,在該對(duì)象所屬的類(lèi)中,對(duì)運(yùn)算符所執(zhí)行的操作進(jìn)行了新的定義。對(duì)于按位右移與提取運(yùn)算符,

25、編譯器也是按此原則解釋。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,賦值運(yùn)算符表,2.6.6 賦值運(yùn)算符,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.6 賦值運(yùn)算符,簡(jiǎn)單賦值運(yùn)算符的使用格式:,左表達(dá)式 = 右表達(dá)式,其功能是將右表達(dá)式(右操作數(shù))的值放到左表達(dá)式表示的內(nèi)存單元中,因此左表達(dá)式一般是變量或表示某個(gè)地址的表達(dá)式,稱(chēng)為左值,在運(yùn)算中作為地址使用。右表達(dá)式在賦值運(yùn)算中是取其值使用,稱(chēng)為右值。所有賦值運(yùn)算左表達(dá)式都要求是左值。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程

26、序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.6 賦值運(yùn)算符,復(fù)合賦值運(yùn)算符的運(yùn)算過(guò)程為:先將兩個(gè)表達(dá)式做運(yùn)算符所規(guī)定的算術(shù)或位運(yùn)算,然后將運(yùn)算的結(jié)果賦給左表達(dá)式。,例如:設(shè)a和b的值分別為2和6,復(fù)合賦值運(yùn)算式b*=a+3的計(jì)算過(guò)程為: 先計(jì)算復(fù)合賦值運(yùn)算符的右表達(dá)式的值,即a+3的和,結(jié)果為5; 然后,做復(fù)合賦值運(yùn)算符所規(guī)定的算術(shù)運(yùn)算,即求b與上述結(jié)果的乘積,結(jié)果為30; 最后進(jìn)行賦值運(yùn)算,將上述運(yùn)算結(jié)果賦給復(fù)合賦值運(yùn)算符的左操作數(shù)b。同時(shí),整個(gè)表達(dá)式的值也為30。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第 2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.6 賦值運(yùn)算符,關(guān)于賦

27、值運(yùn)算符的說(shuō)明:,(1) 用賦值運(yùn)算符連接起來(lái)的表達(dá)式叫做賦值表達(dá)式。賦值表達(dá)式是C+語(yǔ)言(包括C語(yǔ)言)中所特有的,其它大多數(shù)語(yǔ)言中,只有賦值語(yǔ)句而沒(méi)有賦值表達(dá)式這一語(yǔ)法要素。賦值表達(dá)式仍可作為操作數(shù)進(jìn)行運(yùn)算,賦值表達(dá)式的類(lèi)型為左邊變量的類(lèi)型,其返回值為賦值后左邊變量的值。,float x; x=2.6; /返回值為2.6, 類(lèi)型為float;,(2) 復(fù)合賦值運(yùn)算符所表示的表達(dá)式不僅比一般賦值運(yùn)算符表示的表達(dá)式簡(jiǎn)練,而且所生成的目標(biāo)代碼也較少,因此,C+語(yǔ)言程序中應(yīng)盡量采用復(fù)合賦值運(yùn)算符的形式表示。,(3) 在C+中還可以連續(xù)賦值,賦值運(yùn)算符具有右結(jié)合性.,x=y= 2.6; / 它相當(dāng)于:

28、x=(y=2.6); a=b=3+8; /先做3+8,然后將11賦給b,再將b的值11賦給a。 c=b*=a+3; /運(yùn)算分解為 a+3 b=b*(a+3) c=b,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.7 +、-運(yùn)算符,這兩個(gè)運(yùn)算符都前置和后置兩種形式。所謂前置是指運(yùn)算符在操作數(shù)的前面,后置是指運(yùn)算符在操作數(shù)的后面。 例如: i+; /+后置 -j; /-前置,(1) 都是使操作數(shù)的值增1或減1,但對(duì)表達(dá)式的值的影響卻完全不同。,前置形式 int i=5; x=+i; y=i; / i先加(增值)后再賦給x (i=6, x=6,y

29、=6) int i=5; +i; x=y=i; / (i=6, y=6,x=6) 后置形式 int i=5; x=i+; y=i; / i賦給后再加(x=5, i=6,y=6) int i=5; i+; x=y=i; / (i=6, y=6,x=6),(2) 由于+、-運(yùn)算符內(nèi)含了賦值運(yùn)算,所以運(yùn)算對(duì)象只能左值,不能作用于常量和表達(dá)式。5+、 (x+y)+都是不合法的。,前綴運(yùn)算是先變化后運(yùn)算,后綴運(yùn)算是先運(yùn)算后變化。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.8 其它運(yùn)算符,1. 條件運(yùn)算符,條件運(yùn)算符也稱(chēng)三目運(yùn)算符, 是C+中唯一的

30、一個(gè)三目運(yùn)算符。格式為:,其中,d1,d2和d3分別是三個(gè)表達(dá)式。該運(yùn)算符的功能是: 先計(jì)算d1; 如果d1的值為true(非0),返回d2的值作為整個(gè)條件運(yùn)算表達(dá)式的值; 如果d1的值為false(0),返回d3的值作為為整個(gè)條件運(yùn)算表達(dá)式的值。 條件運(yùn)算表達(dá)式的返回類(lèi)型將是d2和d3這兩個(gè)表達(dá)式中類(lèi)型高(表示的數(shù)值范圍大)的那種類(lèi)型。,例如: a=(xy ? 12 : 10.0); /若xy(xy的值為true), 將12賦給a; 否則a=10.0。條件運(yùn)算表達(dá)式的返回類(lèi)型為10.0的類(lèi)型double。 x?y=a+10:y=3*a-1; /若x非0則把a(bǔ)+10的值賦給y,否則把3*a-1

31、的值賦y,d1 ?d2:d3,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.8 其它運(yùn)算符,2. 逗號(hào)運(yùn)算符,逗號(hào)可作分隔符使用,將若干變量隔開(kāi),如:int a,b,c;一般形式為:,逗號(hào)表達(dá)式的求解過(guò)程為:先求表達(dá)式1的值,再求表達(dá)式2的值,最后求表達(dá)式n的值。整個(gè)逗號(hào)表達(dá)式結(jié)果的值是最后一個(gè)表達(dá)式n的值。它的類(lèi)型也是最后一個(gè)表達(dá)式的類(lèi)型。,例如: a=a+b, b=b*c, c=c-a; 設(shè)a=3,b=5,c=7,該表達(dá)式依次計(jì)算出a的值為8、b的值為35、c的值為-1、且整個(gè)表達(dá)式的值為-1。更進(jìn)一步: x=(a=a+b, b=b*c

32、, c=c-a) ; / x的值為-1。,表達(dá)式1,表達(dá)式2,表達(dá)式n;,逗號(hào)運(yùn)算符還用在只允許出現(xiàn)一個(gè)表達(dá)式而又需要多個(gè)表達(dá)式才能完成運(yùn)算的地方,用它將幾個(gè)表達(dá)式連起來(lái)組成一個(gè)逗號(hào)表達(dá)式。,在C+語(yǔ)言所有運(yùn)算符中,逗號(hào)表達(dá)式的優(yōu)先級(jí)最低。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.8 其它運(yùn)算符,3.求字節(jié)運(yùn)算符 sizeof,sizeof運(yùn)算符用來(lái)求得某種類(lèi)型或某個(gè)變量所占字節(jié)數(shù)(長(zhǎng)度)。它是一個(gè)單目運(yùn)算符,用在類(lèi)型說(shuō)明符或變量名的左邊,該運(yùn)算符的使用形式如下:,例如:int a,b 10;,sizeof (類(lèi)型說(shuō)明符 | 變量名

33、| 常量 ),在32位系統(tǒng)下,表達(dá)式sizeof(a)的值應(yīng)該為4,與sizeof (int)的值相等;同樣,sizeof (b)的值為40,它是數(shù)組b的所有元素所占的總內(nèi)存字節(jié)數(shù); sizeof(3.1)的值為8,即雙精度數(shù)的長(zhǎng)度。,(1)下標(biāo)運(yùn)算符 。,4.成員運(yùn)算符,(2) 取結(jié)構(gòu)或聯(lián)合變量成員運(yùn)算符.,(3) 通過(guò)指針取結(jié)構(gòu)或聯(lián)合體成員運(yùn)算符-,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.6.8 其它運(yùn)算符,5. 取地址運(yùn)算符 /降低了精度 float f=3.5; /未降低精度,(7) 將signed型的整型變成較長(zhǎng)的signed型

34、的整型,unsigned型變成較長(zhǎng)的整型時(shí),原值以及正負(fù)符號(hào)不變。,int a=-2; long b=a; /b的值仍為-2,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.7 類(lèi)型轉(zhuǎn)換,(8) 將unsigned型和同長(zhǎng)度的signed型互變時(shí),其值根據(jù)自身所屬范圍發(fā)生適當(dāng)?shù)淖兓?unsigned short a=65535; short int b=a; / b的值變成-1 short int a=-2; unsigned short b=a; / b的值變成65534,假設(shè)定義變量為:char c=1;float f=3.1; 表達(dá)式(

35、3 = f ) + ( B - c ) / 1.0 + f的類(lèi)型轉(zhuǎn)換圖如下:,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.7 類(lèi)型轉(zhuǎn)換,2. 強(qiáng)制類(lèi)型轉(zhuǎn)換,舊式的C語(yǔ)言風(fēng)格的強(qiáng)制類(lèi)型轉(zhuǎn)換的格式如下:,類(lèi)型說(shuō)明符 (表達(dá)式) 或 (類(lèi)型說(shuō)明符) 表達(dá)式,例如:int(a+b) /將a+b運(yùn)算的結(jié)果轉(zhuǎn)換成int型 5/float(3) /將3轉(zhuǎn)換成float型,int a;float x=8.57; a=(int)x; /取整數(shù)部分,舍棄小數(shù)部分 結(jié)果a=8,x仍為float型,其值仍為8.57。,采用強(qiáng)制類(lèi)型轉(zhuǎn)換將高類(lèi)型數(shù)據(jù)轉(zhuǎn)換為低類(lèi)型數(shù)據(jù)時(shí),數(shù)據(jù)精度可能會(huì)受到損失。,C+語(yǔ)言程序設(shè)計(jì)教程 第1章 C+編程簡(jiǎn)介,C+語(yǔ)言程序設(shè)計(jì)教程 第2章 數(shù)據(jù)類(lèi)型與表達(dá)式,2.7 類(lèi)型轉(zhuǎn)換,標(biāo)準(zhǔn)C+強(qiáng)制類(lèi)型轉(zhuǎn)換:,static_cast用于一般表達(dá)式的類(lèi)型轉(zhuǎn)換。 例如: int a;float x=8.57; a=static_cast (x); /將變量x的類(lèi)型轉(zhuǎn)換成int型。,static_cast (表達(dá)式) reinterpret_cast (表達(dá)式) const_cast (表達(dá)式) dynamic_cast (表達(dá)式),reinterpret_cast用于非標(biāo)準(zhǔn)的指針數(shù)據(jù)類(lèi)型轉(zhuǎn)換,如將void *轉(zhuǎn)換成char *。

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論