C++程序設(shè)計(jì) 第2章 變量和表達(dá)式1_第1頁
C++程序設(shè)計(jì) 第2章 變量和表達(dá)式1_第2頁
C++程序設(shè)計(jì) 第2章 變量和表達(dá)式1_第3頁
C++程序設(shè)計(jì) 第2章 變量和表達(dá)式1_第4頁
C++程序設(shè)計(jì) 第2章 變量和表達(dá)式1_第5頁
已閱讀5頁,還剩126頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 變量和表達(dá)式變量和表達(dá)式內(nèi)容nC+語言的字符集和單詞n數(shù)據(jù)類型和存儲(chǔ)類型n常量n變量n運(yùn)算符n表達(dá)式n類型轉(zhuǎn)換nC+ 程序的結(jié)構(gòu)n標(biāo)識(shí)符模板n主要討論C+的字符集和標(biāo)識(shí)符的構(gòu)詞規(guī)則。 C+的字符集是ASCII字符集的子集,包括以下幾類字符: n英文字母,AZ,az(必須區(qū)分大小寫)n數(shù)字字符:09n運(yùn)算符,例如:+、-、*、/、%,等等n標(biāo)點(diǎn)符號(hào),例如:,、;和各種括號(hào)n其他符號(hào),例如下劃線_、美元符號(hào)$、井號(hào)#等n標(biāo)識(shí)符是由若干個(gè)字符構(gòu)成的“程序單詞”,用來標(biāo)記程序中的各種語法成分,例如標(biāo)識(shí)變量、函數(shù)等等n與一個(gè)函數(shù)或數(shù)據(jù)對(duì)象有關(guān)的,有字母(A-Z, a-z)、數(shù)字(0-9)和

2、下劃線組成,但開頭字符。n用途n用于標(biāo)識(shí)一個(gè)函數(shù)或數(shù)據(jù)對(duì)象、自定義類型的名稱標(biāo)識(shí)符n構(gòu)成規(guī)則構(gòu)成規(guī)則n組成標(biāo)識(shí)符的字符只能是:字母、數(shù)字、下劃線; n標(biāo)識(shí)符的首字符必須是必須是字母或下劃線、字母或下劃線、不能是數(shù)字符,中間不能出現(xiàn)空格字符;n標(biāo)識(shí)符的長度(字符數(shù))是任意的,但一般僅前31個(gè)字符有效;n不能與系統(tǒng)保留字同名;n盡量能做到“見名知義”實(shí)例實(shí)例n例2-1n AB1,ab1,Rec_Count,RecCount均是合法的標(biāo)識(shí)符,注意AB1與ab1如果同時(shí)用在同一個(gè)程序中,是兩個(gè)不同的標(biāo)識(shí)符。n例2-2n1a,%name,$addr均是非法的標(biāo)識(shí)符。標(biāo)識(shí)符舉例()n正確的標(biāo)識(shí)符( id)

3、 : nsum_of_squares j9 box_22AnGetData Bin3D4 count A a n不正確的標(biāo)識(shí)符: n40Hours Get Datanbox-22 cost_in_$ int nage# 2000TaxRate Age-Of-Cat標(biāo)識(shí)符舉例()n保留字不可以用作標(biāo)識(shí)符,P683 例如: if 、else 等不可以用作標(biāo)識(shí)符 保留字: continue 、while、 case 、mainn標(biāo)識(shí)符區(qū)分大小寫 例如: ba 和 Ba 是不同的兩個(gè)標(biāo)識(shí)符n使用有意義的、可讀性好的標(biāo)識(shí)符 例如: 用average 表示平均的量的標(biāo)識(shí)符 用sum 表示和的量標(biāo)識(shí)符n保留

4、字是系統(tǒng)定義的特殊標(biāo)識(shí)符(專用詞匯)。通常用來作為數(shù)據(jù)類型描述符(類型名),語句成分描述符等。n例2-3 int、float數(shù)據(jù)類型描述符類型名; if、for 語句成分描述符。nANSI C設(shè)置32個(gè)保留字,ANSI C+在此基礎(chǔ)上增加了29個(gè)保留字C+ 保留字保留字nAppendix A ,P683nAnd 、not、this、union、whileC+ Data Typesstructuredarray struct union class addresspointer referencesimple integral enumchar short int long boolfloati

5、ngfloat double long doublenC+ 數(shù)據(jù)類型分為簡單類型(基本數(shù)據(jù)類型分為簡單類型(基本類型)、構(gòu)造類型類型)、構(gòu)造類型 和地址類型(指和地址類型(指針類型)針類型) C+C+的簡單數(shù)據(jù)類型(的簡單數(shù)據(jù)類型(Simple Data TypesSimple Data Types)簡單數(shù)據(jù)類型(簡單數(shù)據(jù)類型(simple types)整型(整型(integral) 浮點(diǎn)型浮點(diǎn)型(floating)char short int long bool enum float double long doubleunsignedC+中的標(biāo)準(zhǔn)數(shù)據(jù)類型n整型(整型(Integral Ty

6、pes)n表示整個(gè)數(shù)據(jù)大小和它們的負(fù)號(hào)表示整個(gè)數(shù)據(jù)大小和它們的負(fù)號(hào)n聲明為聲明為 int, short, or longn浮點(diǎn)型(浮點(diǎn)型(Floating Types)n用小數(shù)點(diǎn)的數(shù)據(jù)表示的實(shí)型數(shù)值用小數(shù)點(diǎn)的數(shù)據(jù)表示的實(shí)型數(shù)值n聲明為聲明為 float 或或 doublen字符型字符型(Character Type)n表示單一的字符表示單一的字符n聲明為聲明為 charC+的標(biāo)準(zhǔn)數(shù)據(jù)類型n整型n聲明為 int, short, or longn例如:4578 -4578 0n實(shí)型n用帶有小數(shù)點(diǎn)的數(shù)值表示n聲明為 float, or doublen例如: 95.274 95. .265n字符型n表

7、示單個(gè)字符n聲明為 charn例如: B d 4 ?*兩種重要的數(shù)據(jù)類型nchar 單一字符類型n在字符集中表示一個(gè)字符 ( ASCII , EBCDIC , Unicode , GB ).nP689 Appendix EnA a 1 ? nnstring 字符序列nProgramming C+ hellon a n字符串模板,用 #include n空字符(0) 結(jié)束標(biāo)志例子#include int main()char a=a;coutChar a takes bytes: sizeof(a)endl;coutvalue of a is: aendl;int b;coutInt b tak

8、es bytes: sizeof(b)endl;coutvalue of b is: bendl;b=a;coutvalue of b is: bendl;return 0;程序的輸出nChar a takes bytes: 1nvalue of a is: anInt b takes bytes: 4nvalue of b is: -858993460nvalue of b is: 97 整型數(shù)據(jù)整型數(shù)據(jù)nchar, short, int, long 類型表示不同大小的整型數(shù).占有的空間的大小依賴于機(jī)器. 利用sizeof 操作符可以得到在你機(jī)器中占有的空間大小 .n例如: sizeof(i

9、nt) 得到的是int類型占有的字節(jié)數(shù) sizeof(char)=sizeof(short)= sizeof(int)= sizeof(long)n在 32位計(jì)算機(jī)中: n char : 1 字節(jié)(byte) -128,127 n short : 2字節(jié) (byte) -32768,32767 n int : 4字節(jié) (byte) -2147483648, 2147483647 n long : 4字節(jié) (byte) -2147483648, 2147483647 nMost compilers dont give error message when integer overflow occ

10、urs. e.g. INT_MAX +1 INT_MIN整型量(整型量(int)n十進(jìn)制(十進(jìn)制(Decimal)n 22 16 1 498 0 4600 -378 -912n八進(jìn)制(八進(jìn)制( Octal )n 022 015n十六進(jìn)制(十六進(jìn)制(Hexadecimal)n 0 xFF 0 x10科學(xué)計(jì)數(shù)法 2.7E4 means 2.7 x 10 4 = 27000.02.7E-4 means 2.7 x 10 - 4 = 0.00027例如:例如:main() float a= 2.7E4 +8000.3;#include #include using namespace std;usin

11、g namespace std;int main()int main() const int PRICE=30; const int PRICE=30; int num,total; int num,total; float v ,r,h; float v ,r,h; num=10; num=10; total=num total=num* *PRICE;PRICE; couttotal endl; couttotal endl; r=2.5; r=2.5; h=3.2; h=3.2; v=3.14159 v=3.14159* *r r* *r r* *h;h; coutvendl; cout

12、vendl; 常量常量變量變量變量先聲變量先聲明后使用明后使用符號(hào)常量符號(hào)常量#include using namespace std;int main() const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl;整型常量shortunsigned short 2字節(jié)intunsigned int 4字節(jié)longunsigned long 4字節(jié)整型變量整型變量聲明#include usi

13、ng namespace std;int main() const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotalendl; r=2.5; h=3.2; v=3.14159*r*r*h; coutvendl;實(shí)型常量float 4float 4字節(jié)字節(jié) 3.41038 7位有效數(shù)字double 8double 8字節(jié)字節(jié) 1.710308 15位有效數(shù)字long double long double 8 8字節(jié)字節(jié) 1.710308 15位有效數(shù)字實(shí)型變量默認(rèn)為double型后綴 F(或

14、 f)為 float型后綴 L(或 l)為 long double型浮點(diǎn)數(shù)據(jù)值n浮點(diǎn)數(shù)據(jù)有整數(shù)部分和小數(shù)部分, 中間是小數(shù)點(diǎn),或者只有整數(shù)部分或小數(shù)部分,但不能兩者都沒有.n例如: 18.4 500. .8 -127.358 n或者,浮點(diǎn)數(shù)據(jù)可具有指數(shù)部分, 科學(xué)計(jì)數(shù)法:n例如: 1.84E1 5E2 8E-1 -.127358E3n字符常量n單引號(hào)括起來的一個(gè)字符,如:a, D, ?, $n字符變量n用來存放字符常量例:char c1,c2; c1=a; c2=A;n字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式n以ASCII碼存儲(chǔ),占1字節(jié),用7個(gè)二進(jìn)制位n字符數(shù)據(jù)的使用方法n字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運(yùn)算。

15、n字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。n字符串常量例:CHINA a a所以:char c; c=a;C H I N A 0a 0aPage 27例如n#include n main( )n char c1,c2;n c1=a;n c2=b;n c1=c1-32;n c2=c2-32;n coutc1c2endl;nreturn 0;n nnewline(換行符) nnhorizontal tab(水平制表鍵) tnvertical tab(垂直制表鍵) vnbackspace(退格鍵) bncarriage return (回車鍵) rnformfeed (進(jìn)紙鍵) fnalert (beel)

16、 (響鈴符) a nbackslash (反斜杠鍵) nquestion mark (問號(hào)) ?nsingle quote (單引號(hào)) ndouble quote (雙引號(hào)) 布爾(bool)型數(shù)據(jù)n布爾型變量的說明:例:bool flag;n布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個(gè)值bool 數(shù)據(jù)類型數(shù)據(jù)類型nbool類型是一種固有的類型類型是一種固有的類型n僅有兩種值: true 和false n我們可以聲明一個(gè)變量為bool類型 n每個(gè)bool類型變量包含 true 或 false的值 (true-1, false-0)bool hasFever; / true if ha

17、s high temperaturebool isSenior; / true if age is at least 55 在在C+中中n數(shù)值 0 表示 falsen任何非零數(shù)值表示true例: int a=3;int a=3; double f=3.56; double f=3.56; char c=a; char c=a; int c(5); int c(5);Page 33n不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),C+編譯器會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。n為了避免不同的數(shù)據(jù)類型在運(yùn)算中出現(xiàn)類型問題,應(yīng)盡量使用同種類型數(shù)據(jù)。n可以采用強(qiáng)制類型轉(zhuǎn)換:例如:float c;int a,b;c=float(a)/fl

18、oat(b); 或 c=(float)a/(float)b; 變量的存儲(chǔ)類型nauton屬于暫時(shí)存儲(chǔ),其存儲(chǔ)空間可以被若干變量多次覆蓋使用。nregistern存放在通用寄存器中。nexternn在所有函數(shù)和程序段中都可引用。nstaticn在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。數(shù)據(jù)和數(shù)據(jù)類型n數(shù)據(jù)被存儲(chǔ)在計(jì)算機(jī)的內(nèi)存(memory)中n每一個(gè)內(nèi)存區(qū)有唯一的地址( address)n數(shù)據(jù)類型 一系列指定的數(shù)值以及這些數(shù)值上的操作nC+允許程序員定義自己的數(shù)據(jù)類型n每個(gè)數(shù)據(jù)必須具有指定的類型聲明聲明n聲明將一個(gè)標(biāo)識(shí)符與一個(gè)數(shù)據(jù)對(duì)象、函數(shù)或數(shù)據(jù)類型聯(lián)系起來,以便程序員可以利用名稱使

19、用該對(duì)象。n在一個(gè)程序中,每個(gè)標(biāo)識(shí)符是不同的(不同的量用不同的標(biāo)識(shí)符表示)n每個(gè)標(biāo)識(shí)符在使用前必須先聲明n聲明必須用分號(hào)結(jié)束. nchar letter;nchar ch;n一條聲明語句中可以聲明幾個(gè)變量.n char letter, ch;n例如:nint n; /靜態(tài)分配nint* nPtr = new int; /動(dòng)態(tài)分配nvoid instructions();nbool user_says_yes();聲明聲明什么是變量?n變量是一個(gè)用標(biāo)識(shí)符標(biāo)識(shí)的內(nèi)存位置. sum=a 0110100010001110 an聲明一個(gè)變量包括變量名稱和它的數(shù)據(jù)類型n例如: int d=5;nBook

20、p35 figure 2-1聲明的任務(wù)int ageOfDog;int ageOfDog;float taxRateY2K;float taxRateY2K;char middleInitial;char middleInitial; 聲明使編譯器給變量分配內(nèi)存單元,并將標(biāo)識(shí)符與內(nèi)存位置(地址)聯(lián)系起來4 bytes for taxRateY2K4 bytes for taxRateY2K1 byte for middleInitial1 byte for middleInitial#include int main()/ int 類型的對(duì)象int value = 2;int pow = 10

21、;cout value raised to the power of pow : t;int res = 1; / 保存結(jié)果/ 循環(huán)控制語句: 反復(fù)計(jì)算res/ 直至cnt 大于powfor ( int cnt=1; cnt = pow; +cnt)res = res * value;cout res endl;常量常量n字面常量(字面常量(Literal value )n常量數(shù)值常量數(shù)值例如:例如:A string 100 3.1415926n命名常量命名常量 (Named constant)在聲明語句中用常量修飾在聲明語句中用常量修飾例如:例如: 常量串常量串 BOOK_TITLE=pro

22、gramming in C+;什么是命名常量命名常量 ?n命名常量命名常量 是我們用標(biāo)識(shí)符指定的內(nèi)存位是我們用標(biāo)識(shí)符指定的內(nèi)存位置置.其中的數(shù)值其中的數(shù)值不能夠改變不能夠改變的的. VALID CONSTANT DECLARATIONSVALID CONSTANT DECLARATIONS const string STARS = const string STARS = “* * * * *” ; ; const float NORMAL_TEMP = 98.6 ; const float NORMAL_TEMP = 98.6 ; const char BLANK = const char

23、BLANK = ; ; const int VOTING_AGE = 18 ; const int VOTING_AGE = 18 ; const float MAX_HOURS = 40.0 ; const float MAX_HOURS = 40.0 ;n一些慣用法一些慣用法算術(shù)操作符算術(shù)操作符n一元操作符(一元操作符(Unary) : +(plus) -(minus)n二元操作符(二元操作符(Binary): + - * /(integral,floating-point )n%(modulus)(integral only)n-3%2 /-1n7.0/2.0 / 3.5 double/

24、double doublen7/2 / 3 int/int int除法操作符n除法操作的結(jié)果依賴于它的操作數(shù)的類型n如果操作數(shù)至少有一個(gè)是浮點(diǎn)類型,則結(jié)果為浮點(diǎn)類型. 否則, 結(jié)果為整型. n例如: 11 / 4 結(jié)果為 2 11.0 / 4.0 結(jié)果為 2.75 11 / 4.0 結(jié)果為 2.75MainMain函數(shù)返給操作系統(tǒng)一個(gè)整型數(shù)值函數(shù)返給操作系統(tǒng)一個(gè)整型數(shù)值/*/ FreezeBoil program/ This program computes the midpoint between/ the freezing and boiling points of water/*#inc

25、lude using namespace std;const float FREEZE_PT = 32.0 ; / Freezing point of waterconst float BOIL_PT = 212.0 ; / Boiling point of waterint main ( ) float avgTemp ; / Holds the result of averaging / FREEZE_PT and BOIL_PT主函數(shù)主函數(shù)續(xù)續(xù) cout Water freezes at FREEZE_PT endl ; cout and boils at BOIL_PT degrees

26、. endl ; avgTemp = FREEZE_PT + BOIL_PT ; avgTemp = avgTemp / 2.0 ; cout Halfway between is ; cout avgTemp degrees. endl ; return 0 ;模操作n取模運(yùn)算符 %只能用于兩個(gè)整數(shù)的操作數(shù),有一個(gè)整型的結(jié)果. n結(jié)果為整型除法的余數(shù). 例如:11 % 4 結(jié)果 3 因?yàn)?411283 C+ C+操作符操作符8int age;age = 8;age = age + 1; age9age+age+age相當(dāng)于相當(dāng)于age=age+1age=age+1先增值再使用先增值再使用ag

27、eage前綴型增量運(yùn)算符8int age;age = 8;+age; age9age后綴型增量運(yùn)算符8int age;age = 8;age+; age9ageage+age+相當(dāng)于相當(dāng)于age=age+1age=age+1先使用先使用ageage再增值再增值自減操作符自減操作符100int dogs;dogs = 100;dogs-; dogs99dogsdogs- 相當(dāng)于相當(dāng)于dogs = = dogs -1 -1先使用先使用dogs再減一再減一前綴和后綴操作符n前綴和后綴的區(qū)別:n后綴(Suffix): 表達(dá)式(num+)值為操作數(shù)原始值. n前綴(Prefix):表達(dá)式(+num)值為

28、操作數(shù)新的值. n例如: nint num=10; cout num+ num; 10 11nint num=10; cout +num b? 1:2C+的一些操作符 P684Precedence OperatorDescription Higher ( ) 函數(shù)調(diào)用(Function ) +正(Positive) -負(fù)(Negative) *乘Multiplication) / 除(Division)優(yōu)先級(jí)別 %模Modulus (remainder) +加Addition -減SubtractionLower = 賦值A(chǔ)ssignment優(yōu)先級(jí)別n當(dāng)有多個(gè)操作符時(shí),優(yōu)先級(jí)別決定了哪個(gè)運(yùn)算符

29、先運(yùn)算nAppendix B關(guān)聯(lián)n當(dāng)有兩個(gè)優(yōu)先級(jí)別相同運(yùn)算符的表達(dá)式,左邊運(yùn)算符的優(yōu)先級(jí)別高,從左到右運(yùn)算n在 C+ 二元操作符中, * , / , % , + , - 都是左關(guān)聯(lián) n表達(dá)式 9 - 5 - 1 表示 ( 9 - 5 ) - 14 - 1 37 * 10 - 5 % 3 * 4 + 9表示表示 (7 * 10) - 5 % 3 * 4 + 9 70 - 5 % 3 * 4 + 970 - (5 % 3) * 4 + 9 70 - 2 * 4 + 9 70 - ( 2 * 4 ) + 9 70 - 8 + 9 ( 70 - 8 ) + 9 62 + 9 71表達(dá)式的值圓括號(hào)()n

30、圓括號(hào)能夠改變運(yùn)算順序.n圓括號(hào)中的部分先計(jì)算n計(jì)算 (7 * (10 - 5) % 3) * 4 + 9 ( 7 * 5 % 3 ) * 4 + 9 ( 35 % 3 ) * 4 + 9 2 * 4 + 9 8 + 9 17n基本算術(shù)運(yùn)算符 + - * /(若整數(shù)相除,結(jié)果取整) %(取余,操作數(shù)為整數(shù))n優(yōu)先級(jí)與結(jié)合性先乘除,后加減,同級(jí)自左至右n+, -(自增、自減)例:i+; - j;Page 68n舉例n=n+5n表達(dá)式的類型等號(hào)左邊對(duì)象的類型n表達(dá)式的值等號(hào)左邊對(duì)象被賦值后的值Page 69n有10種復(fù)合運(yùn)算符:+=, -=, *=, /=, %=,=,&=,=,|= n例

31、a+=3 等價(jià)于 a=a+3x*=y+8 等價(jià)于 x=x*(y+8)a=5表達(dá)式值為5a=b=c=5表達(dá)式值為5,a,b,c均為5a=5+(c=6)表達(dá)式值為11,a為11,c為6a=(b=4)+(c=6) 表達(dá)式值為10,a為10,b為4,c為6a=(b=10)/(c=2) 表達(dá)式值為5,a為5,b為10,c為2a+=a-=a*a 相當(dāng)于 a=a+(a=a-a*a)Page 71n格式表達(dá)式1,表達(dá)式2n求解順序及結(jié)果先求解1,再求解2,最終結(jié)果為表達(dá)式2的值n例a=3*5 , a*4 最終結(jié)果為60Page 72關(guān)系運(yùn)算與關(guān)系表達(dá)式n關(guān)系運(yùn)算是比較簡單的一種邏輯運(yùn)算,優(yōu)先次序?yàn)椋?= =

32、!= 優(yōu)先級(jí)相同(高) 優(yōu)先級(jí)相同(低)n 關(guān)系表達(dá)式是一種最簡單的邏輯表達(dá)式其結(jié)果類型為 bool,值只能為 true 或 false。n例如:ab,cb)&(xy) 其結(jié)果類型為 bool,值只能為 true 或 false int x, y ; x = 4; y = 6;表達(dá)式表達(dá)式 值值x y truex + 2 = y truey = x falsey = x+2 truey = x + 3 7 (true) n例如bool a;int c=5,g=7;a=cg; if (a) n一般形式表達(dá)式1?表達(dá)式2:表達(dá)式3表達(dá)式1 必須是 bool 類型n執(zhí)行順序n先求解表達(dá)式1,

33、n若表達(dá)式1的值為true,則求解表達(dá)式2,表達(dá)式2的值為最終結(jié)果n若表達(dá)式1的值為false,則求解表達(dá)式3,表達(dá)式3的值為最終結(jié)果n例: x=ab? a:b;n注意:條件運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符,低于邏輯運(yùn)算符表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中較高的類型。n例: x=ab? a:b;sizeof 運(yùn)算符n語法形式sizeof (類型名)或 sizeof (表達(dá)式)n結(jié)果值:“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。n例:sizeof(short)sizeof(x)n運(yùn)算規(guī)則n將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯與操作n舉例:計(jì)算 3 &

34、5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 13 & 5: 0 0 0 0 0 0 0 1n用途:n將某一位置0,其他位不變。例如:將char型變量a的最低位置0: a=a&0376;n取指定位。例如:有char c; int a; 取出a的低字節(jié),置于c中:c=a&0377;n運(yùn)算規(guī)則n將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯或操作n舉例:計(jì)算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 1n用途:n將某些位置1,其他位不變。例如:將 int

35、型變量 a 的低字節(jié)置 1 : a = a | 0 xff;n運(yùn)算規(guī)則n兩個(gè)操作數(shù)進(jìn)行異或:若對(duì)應(yīng)位相同,則結(jié)果該位為 0,若對(duì)應(yīng)位不同,則結(jié)果該位為 1,n舉例:計(jì)算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1 0 1 0 071052 : 0 0 0 1 0 0 1 1n用途:n使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反) 例如:要使 01111010 低四位翻轉(zhuǎn): 0 1 1 1 1 0 1 0 () 0 0 0 0 1 1 1 10 1 1 1 0 1 0 1單目運(yùn)算符,對(duì)一個(gè)二進(jìn)制數(shù)按位取反。例: 025:00000000000101

36、01 025:1111111111101010n左移運(yùn)算()右移后,低位:舍棄高位:無符號(hào)數(shù):補(bǔ)0 有符號(hào)數(shù):補(bǔ)“符號(hào)位”運(yùn)算符優(yōu)先級(jí)括號(hào)+,-,sizeof*, /, %+, -=, !=位運(yùn)算&|?:賦值運(yùn)算逗號(hào)運(yùn)算低高混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換 隱含轉(zhuǎn)換n一些二元運(yùn)算符(算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符)要求兩個(gè)操作數(shù)的類型一致。n在算術(shù)運(yùn)算和關(guān)系運(yùn)算中如果參與運(yùn)算的操作數(shù)類型不一致,編譯系統(tǒng)會(huì)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。char,short,int,unsigned,long,unsigned long,flo

37、at,doublechar,short,int,unsigned,long,unsigned long,float,double低低 高高混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換 隱含轉(zhuǎn)換n當(dāng)參與運(yùn)算的操作數(shù)必須是bool型時(shí),如果操作數(shù)是其它類型,編譯系統(tǒng)會(huì)自動(dòng)將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。n位運(yùn)算的操作數(shù)必須是整數(shù),當(dāng)二元位運(yùn)算的操作數(shù)是不同類型的整數(shù)時(shí),也會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,n賦值運(yùn)算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會(huì)自動(dòng)將右值轉(zhuǎn)換為左值的類型?;旌线\(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換n語法形式:類型說明符(表達(dá)式)或(類型說明符)表達(dá)式n強(qiáng)制類型轉(zhuǎn)換的作用是將表達(dá)式的結(jié)果類

38、型轉(zhuǎn)換為類型說明符所指定的類型。變量賦初值n變量賦初值可用賦值運(yùn)算符=;變量聲明:string firstName ;char middleInitial ;char letter ;int ageOfDog;有效的賦值語句:有效的賦值語句: firstName = “Fido” ;middleInitial = X ;letter = middleInitial ;ageOfDog = 12 ;什么是C+的表達(dá)式?n表達(dá)式是變量、常量和操作符號(hào)的有效排列。n在C+每個(gè)表達(dá)式能夠計(jì)算得到一個(gè)給定類型的數(shù)值n表達(dá)式的值 9 + 5 is 14賦值操作的語法 Variable = Expressi

39、onn表達(dá)式右側(cè)的式子必須可以計(jì)算得到一個(gè)數(shù)值.n計(jì)算的結(jié)果存儲(chǔ)在左側(cè)變量的內(nèi)存單元中n變量 左側(cè)數(shù)值 ( lvalue )n表達(dá)式的類型必須與變量的類型相匹配.n例如:n int a=0.4; 得不到正確的結(jié)果正確賦值語句的例子nstring firstName, n middleName,n lastName,n name;n name = firstName+middleName+lastName;n說明說明: 符號(hào)符號(hào) + 表示串聯(lián)表示串聯(lián)n給一個(gè)字符串變量賦值時(shí),等號(hào)右側(cè)的表達(dá)式必須是給一個(gè)字符串變量賦值時(shí),等號(hào)右側(cè)的表達(dá)式必須是一個(gè)字符串的表達(dá)式、文字串或一個(gè)字符一個(gè)字符串的表達(dá)式

40、、文字串或一個(gè)字符. 問題的提出問題的提出n需求變化引發(fā)軟件危機(jī)n1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國召開的會(huì)議上第一次提出了“軟件危機(jī)”。n軟件危機(jī)包含兩方面問題:a)如何開發(fā)軟件,以滿足不斷增長,日趨復(fù)雜的需求;b)如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品 n面向?qū)ο蟪绦蛟O(shè)計(jì)方法的產(chǎn)生n類繼承n類封裝大型項(xiàng)目的開發(fā)流程n問題的確定(需求分析、了解業(yè)務(wù)、目標(biāo)的精確化)n項(xiàng)目設(shè)計(jì)(UML建模,模塊劃分,組織關(guān)系,數(shù)據(jù)庫設(shè)計(jì)等)n具體模塊實(shí)現(xiàn)n選擇數(shù)據(jù)結(jié)構(gòu)(List, Stack, Queue)n分析算法n整體測試(白盒法、黑盒法)n后期維護(hù)、二次開發(fā)第一個(gè)例子第一個(gè)例子#include u

41、sing namespace std;int Square( int );int Cube( int );int main() cout The square of 27 is Square(27) endl; cout and the cube of 27 is Cube(27) endl; return 0;int Square( int n ) return n * n;int Cube( int n ) return n * n * n;C+ 的表達(dá)式b2 - 4ac的平方根 sqrt ( b * b - 4.0 * a * c )myAge 和yourAge平均數(shù)的平方根sqrt (

42、 ( myAge + yourAge ) / 2 )n整形和字符串整形和字符串n浮點(diǎn)數(shù)據(jù)浮點(diǎn)數(shù)據(jù)n“set width” 控制下一個(gè)要輸出的數(shù)據(jù)項(xiàng)占的字符位置數(shù),適用于數(shù)值和串不用于字符型數(shù)據(jù)n例如:cout setw(fieldwidth) dataitem n數(shù)據(jù)dataitem 將右對(duì)齊打印輸出n如果fieldwith小于dataitem 的長度,則自動(dòng)擴(kuò)大長度,輸出全部字符. n設(shè)置字段的寬度是先做的內(nèi)容.n int ans = 33 , num = 7132;n cout setw(4) ansn setw(5) numn setw(4) Hi; bb33b7132bbHi注意:#i

43、nclude / setw(4) n缺省時(shí), 大的浮點(diǎn)數(shù)大的浮點(diǎn)數(shù) 用科學(xué)計(jì)數(shù)法輸出n例如: 123456789.5 1.234567E+08 n操作符fixed用于強(qiáng)制輸出所有的浮點(diǎn)數(shù),以十進(jìn)制形式輸出. n例如. cout fixed 123456789.5 ; 123456789.5 n操作符showpoint用于強(qiáng)制所有數(shù)據(jù)的輸出為小數(shù)形式.n操作符setprecision(number)用于控制輸出數(shù)據(jù)的小數(shù)點(diǎn)的位置. n float x = 310.0 , y= 4.827 ; cout fixed setw(10) setprecision(2) x ;n bbbb310.00#include iostream.h#include iomanip.h/using namespace std;int main()float gg=3241.323441;coutsetiosflags(ios:fixed)setprecis

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論