C++程序設(shè)計(jì)-cchp2-數(shù)據(jù)及表達(dá)式_第1頁(yè)
C++程序設(shè)計(jì)-cchp2-數(shù)據(jù)及表達(dá)式_第2頁(yè)
C++程序設(shè)計(jì)-cchp2-數(shù)據(jù)及表達(dá)式_第3頁(yè)
C++程序設(shè)計(jì)-cchp2-數(shù)據(jù)及表達(dá)式_第4頁(yè)
C++程序設(shè)計(jì)-cchp2-數(shù)據(jù)及表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩115頁(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ù)類型與表達(dá)式2.1 C+的數(shù)據(jù)類型2.2 常量2.3 變量2.4 C+的運(yùn)算符2.5 算術(shù)運(yùn)算符與算術(shù)表達(dá)式2.6 賦值運(yùn)算符與賦值表達(dá)式2.7 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式2.1 C+的數(shù)據(jù)類型#includeusing namespace std; int main ( )/求圓的周長(zhǎng)和面積 double r, girth, area ; const double pi = 3.1415 ; cout r ; girth = 2 * pi * r ; area = pi * r * r ; cout radius = r endl ; cout girth = girth endl

2、; cout area = area r ; girth = 2 * pi * r ; area = pi * r * r ; cout radius = r endl ; cout girth = girth endl ; cout area = area 314.159 0.314159e3+ 3 + .31415923位7位2實(shí)型數(shù)據(jù)的存儲(chǔ)形式 位數(shù)與C語(yǔ)言系統(tǒng)有關(guān)1. 普通的字符常量用單引號(hào)括起來(lái)的一個(gè)字符。a # % D 4注意:只包括一個(gè)字符,如AB 是不合法的。區(qū)分大小寫(xiě)字母,如A 和 a 是兩個(gè)不同的字符常量。字符常量都是char類型,在內(nèi)存中占一個(gè)字節(jié)。2.2.3 字符常量附

3、錄A 常用字符與ASCII代碼對(duì)照表每個(gè)字符對(duì)應(yīng)一個(gè) ASCII代碼(0255整數(shù)); 包括有:控制字符:如回車(chē),退格,響鈴等普通字符 :ASCII碼從32至126對(duì)應(yīng)的字符控制字符如何表示?-可用轉(zhuǎn)義字符表示2. 轉(zhuǎn)義字符常量轉(zhuǎn)義字符 字符序列 以 “ ” 為前綴,表示改變后面字符序列使其成為控制符或字符值。字符序列共有兩類:?jiǎn)巫址麛?shù)值C+常用轉(zhuǎn)義字符 1.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式名稱字符形式值空字符(Null)00X00 0換行(NewLine)n 0X0A 10換頁(yè)(FormFeed)f 0X0C 12回車(chē)(Carriage Return)r 0X0D 1

4、3退格(BackSpasc) b 0X08 8響鈴(Bell) a 0X07 7水平制表(Horizontal Tab)t 0X09 9垂直制表(Vertical Tab)v 0X0B 11反斜杠(backslash) 0X5C 92單引號(hào)(single quote) 0X27 39雙引號(hào)(double quote) 0X22 342. 轉(zhuǎn)義字符常量C+常用轉(zhuǎn)義字符 1.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式名稱字符形式值1-3位八進(jìn)制數(shù)所代表的字符ddd1-2位十六進(jìn)制數(shù)所帶代表的字符xhh2. 轉(zhuǎn)義字符常量例如:英文字母 A 的三種表示方法:A 101 A的ASCII碼是6

5、5=(101)8 x41 =(41)16字符#的三種表示方法: 173 #的ASCII碼是123=(173)8 x7B =(7B)16C+常用轉(zhuǎn)義字符 1.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式名稱字符形式值1-3位八進(jìn)制數(shù)所代表的字符ddd1-2位十六進(jìn)制數(shù)所帶代表的字符xhh2. 轉(zhuǎn)義字符常量又如:字符 的三種表示方法: 的ASCII碼是34=(42)8 =(22)16如:字符常量a 和 b內(nèi)存存放的是 a 的ASCII碼97,b 的ASCII碼98,3. 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式1000011001000110ab每個(gè)字符對(duì)應(yīng)一個(gè)代碼;內(nèi)存中占一個(gè)字節(jié) C+的字符型與整

6、型數(shù)據(jù)密切相關(guān),可以用ASCII 值參與算術(shù)運(yùn)算例2.1 將字符賦給整型變量。#include using namespace std;int main( )int i , j; /i和j是整型變量 i=A ; /將一個(gè)字符常量賦給整型變量i j=B ; /將一個(gè)字符常量賦給整型變量j couti jn; /輸出整型變量i和j的值, / n 是換行符 return 0;執(zhí)行時(shí)輸出 65 66可以看到:在一定條件下,字符型數(shù)據(jù)和整型數(shù)據(jù)是可以通用的。但是應(yīng)注意字符數(shù)據(jù)只占一個(gè)字節(jié)。例2.2 將字符數(shù)據(jù)與整數(shù)進(jìn)行算術(shù)運(yùn)算。#include using namespace std;int main(

7、 )char c1 , c2; /c1和c2是字符型變量 c1=a ; /將字符常量賦給變量c1 c2=b ; /將字符常量賦給變量c2 c1=c1-32 ; / c1的值為97-32=65 c2=c2-32 ; / c2的值為98-32=66 coutc1 c2n; /輸出字符型變量的值(字符) return 0;執(zhí)行時(shí)輸出 A B用雙引號(hào)括起來(lái)的若干個(gè)字符是字符串常量,如:abcHello! a+bLiping4. 字符串常量字符串常量abc在內(nèi)存中占4個(gè)字節(jié);編譯系統(tǒng)會(huì)在每個(gè)字符串之后自動(dòng)加一個(gè) 0 作為字符串結(jié)束標(biāo)志。 0 的ASCII碼值為0, 叫空字符字符串常量在內(nèi)存中例以下字符串

8、常量在內(nèi)存中各占多少字節(jié)?hello101abncd-6個(gè)字節(jié),5個(gè)字符,最后1個(gè)是0-8個(gè)字節(jié),7個(gè)字符,最后1個(gè)是0區(qū)分字符常量與字符串常量一個(gè)字符:a 一個(gè)字符串:apath:d:mathex1.c # include int main ( ) cout x07operationt systemn ; cout 101 t A 012 ; return 0;例 注意字符串中的轉(zhuǎn)義字符水平制表符(Tab)1.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式# include int main () cout x07operationt systemn ; cout 101 t A 0

9、12 ; return 0;換行符:ASCII:0121.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式例 注意字符串中的轉(zhuǎn)義字符# include int main () cout x07operationt systemn ; cout 101 t A 012 ; return 0; 字符A的ASCII碼,與A等價(jià)1.3.3 基本類型 1.3 C+的基本數(shù)據(jù)類型與存儲(chǔ)形式ASCII碼-x07,是響鈴,可寫(xiě)成a例 注意字符串中的轉(zhuǎn)義字符用一個(gè)符號(hào)名代表一個(gè)常量,稱為符號(hào)常量, 例:#define pi 3.14159 /定義符號(hào)名pi代表了 3.14159 int main( ) f

10、loat r, girth, area; cout r ; girth = 2 * pi * r ; / 使用符號(hào)常量pi,代表3.14159 area = pi * r * r ; / 使用符號(hào)常量pi,代表3.14159 cout radius = r endl ; cout girth = girth endl ; cout area = area = = !=邏輯運(yùn)算符! & |位運(yùn)算符 | & 賦值運(yùn)算符= 及擴(kuò)展的復(fù)合運(yùn)算符條件運(yùn)算符? :逗號(hào)運(yùn)算符,指針運(yùn)算符* &求字節(jié)運(yùn)算符sizeof強(qiáng)制類型轉(zhuǎn)換符類型成員運(yùn)算符. -下標(biāo)運(yùn)算符其他() : new delete2.4 C+的

11、運(yùn)算符運(yùn)算規(guī)則優(yōu)先級(jí)結(jié)合性1.6 表達(dá)式 單目運(yùn)算符 運(yùn)算符 右操作數(shù)例如:&a!500 *p 雙目運(yùn)算符 左操作數(shù) 運(yùn)算符 右操作數(shù)例如:a*3xy 三目運(yùn)算符 條件運(yùn)算: 操作數(shù)1 ? 操作數(shù)2 : 操作數(shù)3例如:a ? b : c c+運(yùn)算符 按操作數(shù)多少分為三種類型:+加法,或單目求正-減法,或單目求負(fù)*乘法/除法%求模(求余)基本算術(shù)運(yùn)算符有:2.5 算術(shù)運(yùn)算符與算術(shù)表達(dá)式2.5.1 基本的算術(shù)運(yùn)算符1.6.1 算術(shù)表達(dá)式 兩個(gè)操作數(shù)都是整型, 結(jié)果值為整型運(yùn)算例子結(jié)果+2 + 3 ;5 +10 ;-13 4 ;4 7 ;*3 * 4 ;5 * 11 ;/8 / 2 ;6 / 4 ;

12、4 / 5 ;-11 / 2 ;6 / 0 ;%10 % 3 ;23 % 4 ;5 % 0 ;1.6.1 算術(shù)表達(dá)式 除求余 % 運(yùn)算外,浮點(diǎn)數(shù)可以進(jìn)行各種算術(shù)運(yùn)算運(yùn)算例子結(jié)果+2.0 + .3 ;5.1 +10.0 ;-13.6 4.2 ;4.0 7.0 ;*3.0 * 4.4 ;7.5 * 11.0 ;/8.6 / 2.0 ;5 / 4.0 ;-11.0 / 4.0 ;6.0 / 0.0 ;算術(shù)表達(dá)式運(yùn)算對(duì)象包括常量、變量、函數(shù)等。如 a*b/c-1.5+abs(-1)算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性: 兩個(gè)相鄰的運(yùn)算符先比較優(yōu)先級(jí),高者先運(yùn)算; 優(yōu)先級(jí)相同時(shí),再按“結(jié)合性”決定誰(shuí)先運(yùn)算。先乘除

13、后加減 a+b*c “+”優(yōu)先級(jí)低過(guò)“*”,*先運(yùn)算同級(jí)自左至右(叫左結(jié)合性) a+b-c “+”,“-”同級(jí),先左后右2.5.2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性例. 定義以下不同類型的變量: char c=a; int i=3; folat f=3.5; double d=5.6; 10+3* b /2 c+1 a + b c + i * ff + c * d-b * 3.14不同類型數(shù)據(jù)混合運(yùn)算,系統(tǒng)自動(dòng)將不同類型轉(zhuǎn)換成同一類型;C+中以下用法均合法:2.5.3 表達(dá)式中各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 規(guī)則: *不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算; * 是必定的轉(zhuǎn)換;是不同類型

14、時(shí)要轉(zhuǎn)換的方向; short+char+long+double+float =結(jié)果為double型char+long+int = 結(jié)果為long型char c=a; int i=12; float f=1.23;c+1 /*結(jié)果為整型*/ 10+3*b/2 /*結(jié)果為整型 */c+i*f /*結(jié)果為 double 型*/2.5.3 表達(dá)式中各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算i0+11.6.1 算術(shù)表達(dá)式2.5.4 自增和自減運(yùn)算符程序設(shè)計(jì)中,常對(duì)變量進(jìn)行如下操作:i = i + 1 i = i - 1定義: int i=0;程序設(shè)計(jì)中,常對(duì)變量進(jìn)行如下操作:i = i + 1 i = i - 1i1+

15、1程序設(shè)計(jì)中,常對(duì)變量進(jìn)行如下操作:i = i + 1 i = i - 1i1+11.6.1 算術(shù)表達(dá)式程序設(shè)計(jì)中,常對(duì)變量進(jìn)行如下操作:i = i + 1 i = i - 1i2+11.6.1 算術(shù)表達(dá)式程序設(shè)計(jì)中,常對(duì)變量進(jìn)行如下操作:i = i + 1 i = i - 1C+ 為其提供自增和自減算符自增式和自減式作為獨(dú)立的表達(dá)式,前綴式和后綴式?jīng)]有區(qū)別;i+;+i; 作為表達(dá)式右值時(shí): (1)前綴式 先變量增值,后用變量新值計(jì)算表達(dá)式例:x = + i ; 相當(dāng)于i = i + 1 ; x = i ;(2)后綴式 先用原變量值計(jì)算表達(dá)式,后變量增值例:x = i + ; 相當(dāng)于 x =

16、i ; i = i + 1 ; 1.6.1 算術(shù)表達(dá)式例: int a = 3 , b; b=a+;a= , b=b=+a;a= , b= 1.6.1 算術(shù)表達(dá)式例: int a = 3 , b; b=a+;a=4 , b=3b=+a;a= 4 , b=4 1.6.1 算術(shù)表達(dá)式例:int a = 3 ;int b = + a ;/ 相當(dāng)于 a = a +1 ; b = a ;int c = a + ;/ 相當(dāng)于 c = a ; a = a + 1; b = a - ;/ 相當(dāng)于 b = a ; a = a - 1 ;c = - a ;/ 相當(dāng)于 a = a - 1; c = a ;+ ( a

17、 + ) ;/ 錯(cuò) (a+)不是變量名c = a + + b;/ 錯(cuò) a+ 無(wú)法對(duì) b 操作c = a + + b;/ 相當(dāng)于 c = a + b; a = a + 1;c = a + + + + b;/ (a+) +b 錯(cuò)注意: 編譯掃描器優(yōu)先從左識(shí)別算符1.6.1 算術(shù)表達(dá)式注:自增、自減算符的運(yùn)算對(duì)象只能是整型變量,不能為常量或表達(dá)式;例:5+(a+)( x + y ) -均為錯(cuò)誤1.6.1 算術(shù)表達(dá)式例:i=5; x=(i+)+(i+); x= ? i=? (1) x=5+5=10 先計(jì)算表達(dá)式的值,再自增 (2) i=i+1; i=i+1; 即i=71.6.1 算術(shù)表達(dá)式例:i=5;

18、 x=(+i)+(i+); x= ? i=? (1) i=i+1=6 (2) x=6+6=12 計(jì)算表達(dá)式的值 (3) i=i+1 即i=7 不要用容易產(chǎn)生歧義的表達(dá)式。1.6.1 算術(shù)表達(dá)式程序編制者利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。形式: (類型名) (表達(dá)式) 類型名(表達(dá)式)例如: (double) (將a轉(zhuǎn)換成double類型) double(a) (int)(x+y) (將x+y的值轉(zhuǎn)換成整型) int(x+y) (float)(5%3) (將5%3的值轉(zhuǎn)換成float型) (int)x+y (只將x轉(zhuǎn)換成整型,然后與相加) (int)5.5%2 ( 5%2 )2.

19、5.5 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符例2.4 強(qiáng)制類型轉(zhuǎn)換。#include using namespace std;int main( ) float x ; int i ; x=3.6; i=(int)x; / 或?qū)懗?i=int(x); coutx=x i=i endl; return 0;運(yùn)算結(jié)果: x= 3.6 i=3 = 賦值運(yùn)算符; 功能: 將運(yùn)算表達(dá)式的值賦給左邊的變量 優(yōu)先級(jí):15(低) 賦值表達(dá)式: a=3 b=a i=i+1 c=a*(b+c)變量=表達(dá)式2.6 賦值運(yùn)算符與賦值表達(dá)式2.6.1 賦值運(yùn)算符當(dāng)賦值運(yùn)算符兩邊類型不同或同類型不同長(zhǎng)度時(shí),系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換;賦值過(guò)程中的隱

20、式類型轉(zhuǎn)換:例2.5 將有符號(hào)數(shù)據(jù)傳送給無(wú)符號(hào)變量。#include using namespace std;int main( ) unsigned short a; short int b=-1; a=b; couta=aendl; return 0;運(yùn)算結(jié)果: a= 65535a1111111111111111b1111111111111111轉(zhuǎn)換原則: 變量 = 運(yùn)算表達(dá)式 目標(biāo)變量類型 表達(dá)式類型賦值過(guò)程中的隱式類型轉(zhuǎn)換:* 整型=實(shí)型 : 取整 int a; long b; float x=2.3; double y=3.5; *實(shí)型 a=2 b=y; = b=3 a=y; = a

21、=3a) 賦值運(yùn)算符兩邊不同類型b)賦值運(yùn)算符兩邊同類型,不同長(zhǎng)度*float=double: 在取值范圍內(nèi)截取相應(yīng)的有效位數(shù) float x; double y; y=1.23456789e12x=y;y=1.23456789e56x=y; /*數(shù)據(jù)溢出*/*實(shí)型(長(zhǎng))=實(shí)型(短):以長(zhǎng)實(shí)型表示并存儲(chǔ) 實(shí)型:賦值過(guò)程中的隱式類型轉(zhuǎn)換:#include using namespace std;int main()int a=65536; / 4個(gè)字節(jié)short b; / 2個(gè)字節(jié) b=a;couta=atb=bendl;return 0;輸出: a=65536 b=0整型(短) 整型(長(zhǎng)):

22、截?cái)郻0000000000000000a00000000000000010000000000000000#include using namespace std;int main()int a;short b=-1; a=b;couta=atb=bendl;return 0;輸出:a=-1 b=-1 整型(長(zhǎng)) 整型(短) : 有符號(hào)用符號(hào)位補(bǔ)滿 無(wú)符號(hào)用0補(bǔ)滿b1111111111111111a11111111111111111111111111111111#include using namespace std;int main()unsigned int a;unsigned short

23、 b=15; a=b;couta=atb=bendl;return 0;輸出:a=15 b=15整型(長(zhǎng)) 整型(短) : 有符號(hào)用符號(hào)位補(bǔ)滿 無(wú)符號(hào)用0補(bǔ)滿b0000000000001111a00000000000000000000000000001111復(fù)合賦值運(yùn)算 雙目算符 op 的表達(dá)式:A = A op B 可以縮寫(xiě)成:A op = Bc = c - kc - = kx = x * ( y + 8 )x * = y + 8x = x + 3x + = 3x = x % 3x % = 3例:2.6.3 復(fù)合的賦值運(yùn)算符 復(fù)合賦值運(yùn)算 雙目算符 op 的表達(dá)式:A = A op B 可以縮寫(xiě)成:A op = B+= -=*=/=%=&=|=C+ 提供的10個(gè)復(fù)合賦值運(yùn)算符:用于位運(yùn)算a=a%ba=a/ba=a*ba=a-ba=a+b等價(jià)于a/=b+2b*=10a-=b+ca+=5例a%=b模賦值%=a=a/(b+2)a/=b除賦值/=b=b*10a*=b乘賦值*=a=a-(b+c)a-=b減賦值=a=a+5a+=b加賦值=等價(jià)于例名稱運(yùn)算符算術(shù)賦值運(yùn)算由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。形式為 如“5”是一個(gè)賦值表達(dá)式。對(duì)賦值表達(dá)式求解的過(guò)程是:先求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值,然后賦給賦值運(yùn)算符左側(cè)的變量。一個(gè)表達(dá)式應(yīng)該有一個(gè)值。賦值運(yùn)算

溫馨提示

  • 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)論