c++2 簡(jiǎn)單的程序設(shè)計(jì)_第1頁(yè)
c++2 簡(jiǎn)單的程序設(shè)計(jì)_第2頁(yè)
c++2 簡(jiǎn)單的程序設(shè)計(jì)_第3頁(yè)
c++2 簡(jiǎn)單的程序設(shè)計(jì)_第4頁(yè)
c++2 簡(jiǎn)單的程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩193頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章簡(jiǎn)單的程序設(shè)計(jì)C++語言程序設(shè)計(jì)2本章主要內(nèi)容2.1字符集、標(biāo)識(shí)符與關(guān)鍵字2.2基本數(shù)據(jù)類型2.3常量與變量2.5運(yùn)算符與表達(dá)式2.4不同類型數(shù)據(jù)的轉(zhuǎn)換2.6語句及基本控制結(jié)構(gòu)3C++字符集(英文)大小寫的英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:空格 ! # % ^ & *

_(下劃線) + = - ~ < > / \ ' " ; . , () [] {}|字符集、標(biāo)識(shí)符與關(guān)鍵字除字符型數(shù)據(jù)外4詞法記號(hào):最小的詞法單元關(guān)鍵字

C++預(yù)先聲明的單詞,都是由小寫字母組成的(P19)標(biāo)識(shí)符

程序員聲明的單詞,它命名程序正文中的一些實(shí)體,比如變量名、函數(shù)名、類名、對(duì)象名等文字

程序中直接使用符號(hào)表示的數(shù)據(jù)(常量)操作符

用于實(shí)現(xiàn)各種運(yùn)算的符號(hào)分隔符

(){},:;

用于分隔各個(gè)詞法記號(hào)或程序正文空白符 空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱★字符集、標(biāo)識(shí)符與關(guān)鍵字★5標(biāo)識(shí)符的構(gòu)成規(guī)則不能與關(guān)鍵字相同以大寫字母、小寫字母或下劃線(_)開始??梢杂梢源髮懽帜?、小寫字母、下劃線(_)或數(shù)字0~9組成。大小寫敏感。沒有明確規(guī)定長(zhǎng)度。字符集、標(biāo)識(shí)符與關(guān)鍵字6判斷以下自定義標(biāo)識(shí)符是否合法apple、_Student、_123、No1、max_num合法的51job、max-num、abc$、float、true不合法的良好的標(biāo)識(shí)符命名習(xí)慣

1、Unix常用的命名法

my_age、num_of_student2、駝峰式命名法

myAge、numOfStudent3、匈牙利標(biāo)記法

iMyCar、bIsRight7什么是數(shù)據(jù)類型? 數(shù)據(jù)是程序處理的對(duì)象,數(shù)據(jù)根據(jù)其本身的特點(diǎn)進(jìn)行分類,從而形成不同的數(shù)據(jù)類型。例:整數(shù)、實(shí)數(shù)、字符、字符串、邏輯“真/假”、“是/否”、2012-2-20數(shù)據(jù)類型不同類型的數(shù)據(jù)有不同的處理方法【取值范圍,存儲(chǔ)空間,運(yùn)算方式】8數(shù)組型指針型枚舉型結(jié)構(gòu)體類型共用體類型類(C++)數(shù)據(jù)類型(type)構(gòu)造數(shù)據(jù)類型(自定義類型)基本類型布爾型bool字符型charASCII碼整型int實(shí)型(浮點(diǎn)型)單精度型float雙精度型doublevoid型9修飾符在C++中描述為了更加準(zhǔn)確的描述數(shù)據(jù)類型,提供了4個(gè)關(guān)鍵字用來修飾基本的數(shù)據(jù)類型(除bool類型):

1、長(zhǎng)型long2、短型short3、有符號(hào)signed4、無符號(hào)unsigned基本數(shù)據(jù)類型10類型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占字節(jié)整型字符型實(shí)型有無[signed]int4-2147483648~2147483647[signed]short[int]2

-32768~32767[signed]long[int]4-2147483648~21474836474unsigned

int0~429496729540~4294967295unsigned

long[int]unsigned

short[int]20~65535有float4-3.4e-38~3.4e38有double8-1.7e-308~1.7e308有l(wèi)ongdouble16-1.2e-4932

~1.2e4932有[signed]char1-128~127說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨編譯系統(tǒng)不同而不完全相同。無unsignedchar10~255

基本數(shù)據(jù)類型11基本數(shù)據(jù)類型0111111111111111short型:最大:327671000000000000000最小:-32768數(shù)據(jù)類型

—整型數(shù)據(jù)及取值范圍1111111111111111unsignedshort型:最大:655350000000000000000最小:0-215~(215-1)0~(216-1)最高位代表符號(hào)(符號(hào)位):0為正,1為負(fù)【補(bǔ)碼】12121、short: 僅用來修飾int,稱為短整型,占2字節(jié)內(nèi)存,也可直接簡(jiǎn)寫為short;2、long:僅修飾int和double,在不同的編譯環(huán)境中使用long修飾的數(shù)據(jù)所占內(nèi)存不同。

3、unsigned:用來修飾char、short、int和long,表示該數(shù)據(jù)類型為無符號(hào)數(shù)。

4、signed:用來修飾char、short、int和long,表示該數(shù)據(jù)類型為有符號(hào)數(shù);

為缺省設(shè)置(char除外)。2023/2/413回顧:計(jì)算機(jī)中的編碼⑴無符號(hào)整數(shù)(unsignedinteger)表示正整數(shù),以相應(yīng)的二進(jìn)制形式表示。取值范圍由字長(zhǎng)決定:字長(zhǎng)——8位可表示0~255(28-1)范圍內(nèi)的所有正整數(shù)0000000001000000012000000102541111111025511111111256(28-1)2023/2/414回顧:計(jì)算機(jī)中的編碼⑴無符號(hào)整數(shù)(unsignedinteger)表示正整數(shù),以相應(yīng)的二進(jìn)制形式表示。取值范圍由字長(zhǎng)決定:字長(zhǎng)——8位可表示0~255(28-1)范圍內(nèi)的所有正整數(shù)字長(zhǎng)——16位(unsignedshort)可表示0~65535(216-1)范圍內(nèi)的所有正整數(shù)字長(zhǎng)——32位(unsignedint或long)可表示0~232-1范圍內(nèi)的所有正整數(shù)。2023/2/415回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)既可表示正整數(shù),又可表示負(fù)整數(shù)。0——正號(hào)“+”(正數(shù));1——負(fù)號(hào)“-”(負(fù)數(shù));010111011字長(zhǎng)等于n位小數(shù)點(diǎn)符號(hào)位n-1位表示數(shù)值2023/2/416回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)既可表示正整數(shù),又可表示負(fù)整數(shù)。3種編碼方法:①原碼表示②反碼表示③補(bǔ)碼表示0——正號(hào)“+”(正數(shù));1——負(fù)號(hào)“-”(負(fù)數(shù));2023/2/417回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示數(shù)值位:數(shù)值本身的絕對(duì)值對(duì)應(yīng)的二進(jìn)制形式。01011101字長(zhǎng)等于8位符號(hào)位7位表示數(shù)值0——正號(hào)“+”(正數(shù));1——負(fù)號(hào)“-”(負(fù)數(shù))93[+93]原=010111011符號(hào)位[-93]原=110111012023/2/418回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示[+1]原=00000001[-1]原=10000001[+7]原=00000111[-7]原=10000111[+127]原=01111111[-127]原=11111111絕對(duì)值相同的正整數(shù)、負(fù)整數(shù),其原碼:⒈符號(hào)位不同;⒉其他數(shù)值位相同;【結(jié)論1】[+0]原=00000000[-0]原=10000000【結(jié)論2】

0的原碼不惟一2023/2/419回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示數(shù)值位:數(shù)值本身的絕對(duì)值對(duì)應(yīng)的二進(jìn)制形式。01111111[+127]原=01111111[-127]原=1111111111111111[+0]原=00000000[-0]原=100000002023/2/420回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示數(shù)值位:數(shù)值本身的絕對(duì)值對(duì)應(yīng)的二進(jìn)制形式。【缺點(diǎn)】⒈不能直接對(duì)兩個(gè)同號(hào)數(shù)相減,即A-B;如、將39和56兩個(gè)十進(jìn)制數(shù)的原碼直接相減-100100011100110011011111[+39]原[+56]原[-111]原00100101[-17]原2023/2/421回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示數(shù)值位:數(shù)值本身的絕對(duì)值對(duì)應(yīng)的二進(jìn)制形式。【缺點(diǎn)】⒈不能直接對(duì)兩個(gè)同號(hào)數(shù)相減,即A-B;⒉不能直接對(duì)兩個(gè)異號(hào)數(shù)相加,即A+(-B);如、將39和(-56)兩個(gè)十進(jìn)制數(shù)的原碼直接相減+100100011101110011101111[+39]原[-56]原[-95]原00100101[-17]原2023/2/422回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——原碼表示數(shù)值位:數(shù)值本身的絕對(duì)值對(duì)應(yīng)的二進(jìn)制形式。【缺點(diǎn)】⒈不能直接對(duì)兩個(gè)同號(hào)數(shù)相減,即A-B;如、將39和56兩個(gè)十進(jìn)制數(shù)的原碼直接相減⒉不能直接對(duì)兩個(gè)異號(hào)數(shù)相加,即A+(-B);如、將39和(-56)兩個(gè)十進(jìn)制數(shù)的原碼直接相減⑵有符號(hào)整數(shù)(signedinteger)——反碼表示⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示反碼僅作為求補(bǔ)碼的中間形式2023/2/423回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——反碼表示表示規(guī)則:①正整數(shù)的反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反;[+93]原=01011101[+93]反=0101110101011101字長(zhǎng)等于8位[-93]原[-93]反1=101000100100010=110111012023/2/424回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——反碼表示[+1]反=00000001[-1]反=11111110[+7]反=00000111[-7]反=11111000[+127]反=01111111[-127]反=10000000[+0]反=00000000[-0]反=11111111【結(jié)論3】

0的反碼不惟一2023/2/425回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——反碼表示表示規(guī)則:①正整數(shù)的反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反;01111111[+127]反=01111111[-127]反=1000000010000000[+0]反=00000000[-0]反=111111112023/2/426回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——反碼表示表示規(guī)則:①正整數(shù)的反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反;[-7]反=11111000[-7]原=10000111取反取反對(duì)反碼再求一次反,會(huì)得到該數(shù)的原碼。2023/2/427回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示表示規(guī)則:①正整數(shù)的補(bǔ)碼、反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反,然后對(duì)整個(gè)數(shù)加1;[-7]原[-7]反=11111000=10000111[-7]補(bǔ)=111110010000111111110001111100101X為負(fù)整數(shù)時(shí),[X]補(bǔ)=[X]反+12023/2/428回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示[-1]反

=11111110[-127]反=10000000=[+0]原[-0]補(bǔ)【結(jié)論4】

0的補(bǔ)碼惟一[-1]補(bǔ)

=11111111[-127]補(bǔ)=10000001=00000000[+0]補(bǔ)=[+0]反[-1]原=10000001[-127]原=11111111=00000000+111111111100000000字長(zhǎng)等于8位[-0]反2023/2/429回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示01111111[+127]補(bǔ)=01111111[-128]補(bǔ)=1000000010000000[+0]補(bǔ)=[-0]補(bǔ)=00000000【注意】用補(bǔ)碼表示的數(shù)的范圍比原碼和反碼多一個(gè)數(shù)[-127]補(bǔ)=10000001100000012023/2/430回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示表示規(guī)則:①正整數(shù)的補(bǔ)碼、反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反,然后對(duì)整個(gè)數(shù)加1;[-7]補(bǔ)=11111001[-7]原=10000111取補(bǔ)取反對(duì)補(bǔ)碼再求一次補(bǔ),會(huì)得到該數(shù)的原碼(除了[-128]補(bǔ))10000110加12023/2/431回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示表示規(guī)則:①正整數(shù)的補(bǔ)碼、反碼與原碼相同;②負(fù)整數(shù),符號(hào)位為1,數(shù)值位為原碼相應(yīng)數(shù)值位取反,然后對(duì)整個(gè)數(shù)加1;表示范圍:-128

+127【特點(diǎn)】用補(bǔ)碼進(jìn)行運(yùn)算,減法可以用加法來實(shí)現(xiàn)。[A]補(bǔ)

+[B]補(bǔ)[A+B]補(bǔ)=[A]補(bǔ)

+[-B]補(bǔ)[A-B]補(bǔ)=2023/2/432回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示【例1】計(jì)算7-6-100000100000111000000001+100000011111111000000001[7]補(bǔ)[-6]補(bǔ)[7]原[6]原[1]原1[1]補(bǔ)字長(zhǎng)等于8位溢出[7]原

-[6]原[7-6]原=[7]補(bǔ)

+[-6]補(bǔ)[7-6]補(bǔ)=2023/2/433回顧:計(jì)算機(jī)中的編碼⑵有符號(hào)整數(shù)(signedinteger)——補(bǔ)碼表示【例2】用補(bǔ)碼計(jì)算39-56=?[39-56]補(bǔ)=[39]補(bǔ)+[-56]補(bǔ)+100100010011110011011111[+39]補(bǔ)[-56]補(bǔ)[?]補(bǔ)0010010000100101[-17]原取反加1[-17]補(bǔ)2023/2/434回顧:計(jì)算機(jī)中的編碼三種定點(diǎn)整數(shù)表示方法的比較⑴無符號(hào)整數(shù)——[0,2n-1]⑵有符號(hào)整數(shù)⒈原碼表示——[-(2n-1-1),2n-1-1]⒉反碼表示——[-(2n-1-1),2n-1-1]⒊補(bǔ)碼表示——[-2n-1

,2n-1-1]010111011字長(zhǎng)等于n位2023/2/435回顧:計(jì)算機(jī)中的編碼三種整數(shù)表示方法的比較00000000字長(zhǎng)等于80000000101111111100000001000000111111111無符號(hào)整數(shù)原碼補(bǔ)碼0112712812925501127-0-1-12701127-128-127-136數(shù)據(jù)類型

—整型數(shù)據(jù)及取值范圍類型 說明符 位數(shù) 數(shù)值范圍 短整 short 16 -32768~32767基本 int 32 -231~(231-1)長(zhǎng)整 long 32 -231~(231-1)無符號(hào)

unsignedshort 16 0~65535

unsigned[int] 32 0~(232-1)

unsignedlong 32 0~(232-1) 基本數(shù)據(jù)類型37typedef重定義類型為一個(gè)已有的數(shù)據(jù)類型另外命名。語法形式:typedef已有類型名新類型名表;例如:typedefdoubleArea,Volume;typedefintNatural;Naturali1,i2;Areaa;Volumev;類型重定義語句多個(gè)標(biāo)識(shí)符,用逗號(hào)分隔。一個(gè)已有數(shù)據(jù)類型聲明多個(gè)別名38定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))。其表示方式自動(dòng)決定了它們的數(shù)據(jù)類型。例:123,3.14,"A",'A'

1、常量常量和變量常量:包括字面(直接)常量和符號(hào)常量?jī)深悺?9整型常量【表示方法】:十進(jìn)制整型常量:由數(shù)字0~9和正負(fù)號(hào)表示.八進(jìn)制整型常量:以0開頭,后跟數(shù)字0~7表示例:0100

=()10?十六進(jìn)制整型常量:以0x開頭,后跟0~9,a~f,A~F表示例:0x100=()10?64十進(jìn)制:123八進(jìn)制:-0123=-()10十六進(jìn)制:0x123=(

)102561*82+2*81+3*801*162+2*161+3*160常量和變量40整型常量【整型常量的類型】:根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母u或U,認(rèn)為是unsignedint型常量在整常量后加字母l或L,認(rèn)為是longint型常量長(zhǎng)整型:123L,123l無符號(hào)型:123U,123u常量和變量41整型常量【整型常量的類型】:根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母u或U,認(rèn)為是unsignedint型常量在整常量后加字母l或L,認(rèn)為是longint型常量常量和變量#include<iostream>usingnamespacestd;intmain(){ cout<<-1U<<endl; return0;}輸出:429496729542實(shí)型常量【表示方法】:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))

如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))

如12.3e3,123E2,1.23e4【類型】:缺省為double型后綴F(或f)

float型,12.3f后綴L(或l)

longdouble型e5,1.2E-3.5錯(cuò)誤常量和變量2023/2/443回顧:計(jì)算機(jī)中的編碼浮點(diǎn)數(shù)的表示方式:M——尾數(shù)E——階碼R——階碼的基數(shù)十進(jìn)制的浮點(diǎn)數(shù)M(尾數(shù))——十進(jìn)制定點(diǎn)小數(shù);E(階碼)——十進(jìn)制定點(diǎn)整數(shù);R(階碼的基數(shù))——10;-56.625=(-0.56625)×1020.0034756=(0.34756)×10-22023/2/444回顧:計(jì)算機(jī)中的編碼十進(jìn)制的浮點(diǎn)數(shù)M(尾數(shù))——十進(jìn)制定點(diǎn)小數(shù);E(階碼)——十進(jìn)制定點(diǎn)整數(shù);R(階碼的基數(shù))——10;二進(jìn)制的浮點(diǎn)數(shù)M(尾數(shù))——二進(jìn)制定點(diǎn)小數(shù);E(階碼)——二進(jìn)制定點(diǎn)整數(shù);R(階碼的基數(shù))——2;(-111000.101)2

=(-0.111000101)2×2(110)2

-56.625=(-0.56625)×1022023/2/445回顧:計(jì)算機(jī)中的編碼計(jì)算機(jī)中二進(jìn)制的浮點(diǎn)數(shù)的表示:M(尾數(shù))——二進(jìn)制定點(diǎn)小數(shù);定點(diǎn)小數(shù)——原碼或補(bǔ)碼。E(階碼)——二進(jìn)制定點(diǎn)整數(shù);定點(diǎn)整數(shù)——補(bǔ)碼。R(階碼的基數(shù))——2,隱含;00字長(zhǎng)等于n階碼符號(hào)尾數(shù)符號(hào)階碼尾數(shù)(-111000.101)2

=(-0.111000101)2×2(110)2

2023/2/446回顧:計(jì)算機(jī)中的編碼計(jì)算機(jī)中浮點(diǎn)數(shù)的表示若某機(jī)器字長(zhǎng)為16位,前6位表示階碼,后10位表示尾數(shù)。01字長(zhǎng)等于16(-111000.101)200110111000101E(階碼)=(110)2

M(尾數(shù))=(-0.111000101)2

=(-0.111000101)2×2(110)20001110101補(bǔ)碼方便階碼加、減原碼補(bǔ)碼12023/2/447回顧:計(jì)算機(jī)中的編碼若計(jì)算機(jī)的字長(zhǎng)為2個(gè)字節(jié),某存儲(chǔ)單元中的機(jī)器碼0110110001011100表示一個(gè)浮點(diǎn)數(shù),該浮點(diǎn)數(shù)的階碼為4位(含階符1位,補(bǔ)碼表示),尾數(shù)位12位(含數(shù)符1位,補(bǔ)碼表示),則與該浮點(diǎn)數(shù)等值的十進(jìn)制數(shù)是

。-29.1252023/2/448回顧:計(jì)算機(jī)中的編碼011011000101110001101011101000110110101110100100取反加1(-0.01110100100)2×2(110)2(-11101.00100)2小數(shù)點(diǎn)右移6位=-29.12549字符、字符串常量【字符常量】:

'a'

'A'

字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式以ASCII碼存儲(chǔ),占1字節(jié),用7個(gè)二進(jìn)制位如'A'——65,'a'——97

'0'——48常量和變量2023/2/450回顧:計(jì)算機(jī)中的編碼ASCII碼AmericanStandardCodeforInformationInterchange美國(guó)信息交換標(biāo)準(zhǔn)代碼b0b1b2b3b4b5b6b7一個(gè)字節(jié)有效編碼位27=128個(gè)字符=96個(gè)可打印字符+32個(gè)控制字符數(shù)字0~9大寫字母A~Z小寫字母a~z02023/2/451回顧:計(jì)算機(jī)中的編碼ASCII碼AmericanStandardCodeforInformationInterchange美國(guó)標(biāo)準(zhǔn)信息交換碼b0b1b2b3b4b5b6b7有效編碼位數(shù)字01010000數(shù)字11010001數(shù)字21010010數(shù)字910101014849505700002023/2/452回顧:計(jì)算機(jī)中的編碼ASCII碼AmericanStandardCodeforInformationInterchange美國(guó)標(biāo)準(zhǔn)信息交換碼b0b1b2b3b4b5b6b7有效編碼位大寫字母A0100001大寫字母O0101111大寫字母P0110000大寫字母Z011011065798090151100002023/2/453回顧:計(jì)算機(jī)中的編碼ASCII碼AmericanStandardCodeforInformationInterchange美國(guó)標(biāo)準(zhǔn)信息交換碼b0b1b2b3b4b5b6b7有效編碼位小寫字母a1100001小寫字母o1101111小寫字母p1110000小寫字母z111011065+3279+3280+3290+3215110000字符常量54Page54常量和變量字符、字符串常量55【字符常量】:

'a'

'A'

'\a'響鈴'\n'換行

\為轉(zhuǎn)義符'A''\x41''\101'字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式以ASCII碼存儲(chǔ),占1字節(jié),用7個(gè)二進(jìn)制位如'A'——65,'a'——97

'0'——48,'\n'——10常量和變量56用轉(zhuǎn)義字符“\”后跟一個(gè)字符表示一個(gè)單一的不可顯示的或從鍵盤無法輸入的字符。字符常量轉(zhuǎn)義字符\

'\a'響鈴'\n'換行

\為轉(zhuǎn)義符

'A''\x41''\101'常量和變量57\a

0x07 bell(響鈴)\n 0x0A 換行(移動(dòng)到下一行開頭)\r 0x0D 回車(移動(dòng)到本行開頭)\t 0x09 水平制表符(下一制表區(qū)開頭)\b 0x08 Backspace(退格)\\ 0x5C 字符

\\" 0x22 雙引號(hào)"\'

0x27 單引號(hào)'

字符常量轉(zhuǎn)義字符Pleaseenter"Yes"or"No"cout<<"Pleaseenter\"Yes\"or\"No\"";58\a 0x07 bell(響鈴)\n 0x0A

換行\(zhòng)r 0x0D 回車\t 0x09 水平制表符\b 0x08 Backspace(退格)\\ 0x5C 字符‘\’\" 0x22 雙引號(hào)"\' 0x27 單引號(hào)'

\ddd1-3位8進(jìn)數(shù)表示字符的ASCII碼

\xhh1-2位16進(jìn)數(shù)表示字符的ASCII碼字符常量轉(zhuǎn)義字符常量和變量59字符常量轉(zhuǎn)義字符Page59'\x41''\101'常量和變量

轉(zhuǎn)義字符及其含義<轉(zhuǎn)義字符含義\n\v\r\a\'\ddd\t\b\f\\\"\xhh轉(zhuǎn)義字符含義換行垂直制表回車(不換行)響鈴單引號(hào)1~3位8進(jìn)制數(shù)代表的字符水平制表(跳到下一個(gè)輸出區(qū))退格換頁(yè)反斜線雙引號(hào)1~2位16進(jìn)制數(shù)代表的字符如'\101'

'A'

'\012'

'\n'

'\376'

’’

'\x61'

'a'

'\60'

'0'

例:'A''\101''\x41'

65字符、字符串常量61【字符常量】:

'a'

'A'

'\a'響鈴'\n'換行

\為轉(zhuǎn)義符'A''\x41''\101'【字符串常量】:"C++language"字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式以ASCII碼存儲(chǔ),占1字節(jié),用7個(gè)二進(jìn)制位如'A'——65,'a'——97

'0'——48,'\n'——10常量和變量62轉(zhuǎn)義字符的使用-例1#include<iostream>usingnamespacestd;voidmain(){ cout<<"\101\x42C\n"<<endl;cout<<"Isay:\"Howareyou?\"\n"<<endl;cout<<"\\CProgram\\\n"<<endl;cout<<"Turbo\'C\'"<<endl;}常量和變量63轉(zhuǎn)義字符的使用-例2#include<iostream>usingnamespacestd;voidmain(){cout<<"Y\b="<<endl;}運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:¥常量和變量64轉(zhuǎn)義字符的使用-例3#include<iostream>usingnamespacestd;voidmain(){ cout<<"1234567890"<<endl;cout<<"abc\t

de\rf\tg"<<endl;cout<<"h\ti\b\bjk"<<endl;}\n換行(移動(dòng)到下一行開頭)\r 回車(移動(dòng)到本行開頭)\t 水平制表符(下一制表區(qū)開頭)\b Backspace(退格)常量和變量65字符常量與字符串常量的區(qū)別

字符串常量:雙引號(hào)括起來的字符序列。

系統(tǒng)會(huì)在每一個(gè)字符串常量尾部加上字符常量'\0',表示“該字符串常量到此結(jié)束”。

寫字符串時(shí)不必加'\0'。例:"CHINA"

"a"

""CHINA\0a

\0\066例:'a'

"a"表示形式:?jiǎn)我?hào)

雙引號(hào)占用空間:

1字節(jié)2字節(jié)

011000010110000100000000字符常量與字符串常量的區(qū)別aa\097常量和變量67布爾常量邏輯(布爾)常量:false和true兩個(gè)值一個(gè)字節(jié)存儲(chǔ)false——0true——1常量與變量cout<<"true:"<<true<<endl;cout<<"false:"<<false<<endl;68符號(hào)常量用標(biāo)識(shí)符代表一個(gè)常量。定義格式:#define符號(hào)常量常量1、常量常量和變量#include<iostream>#definePRICE30usingnamespacestd;voidmain(){intnum,total;num=10;total=num*PRICE;cout<<"total="<<total;}運(yùn)行結(jié)果:total=300一般用大寫字母是宏定義預(yù)處理命令,不是C++語句【優(yōu)點(diǎn)】含義清楚,一改全改如:#definePI3.141592669符號(hào)常量(預(yù)處理命令)常量與變量#include<iostream>#definePI3.14159usingnamespacestd;voidmain(){ floatr,area; r=10;

cout<<"area="<<area<<endl;}area=PI*r*r;area=3.14159*r*r;#define標(biāo)識(shí)符常量功能:用指定標(biāo)識(shí)符替換常量702、變量變量是在程序執(zhí)行中其值可以改變的量。變量是存儲(chǔ)信息的地方。實(shí)質(zhì)是內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,在這個(gè)空間中可以進(jìn)行數(shù)據(jù)的存儲(chǔ)和讀取。變量的三要素變量名:標(biāo)識(shí)符,要“見名知意”;數(shù)據(jù)類型變量值常量和變量3存儲(chǔ)單元變量值變量名(代表內(nèi)存地址)a71變量定義(聲明)數(shù)據(jù)類型變量名;

數(shù)據(jù)類型變量名1,變量名2,…,變量名n;

例:inta,b;

charc;

doublex,y;先定義(聲明),后使用1、分配字節(jié)數(shù)2、數(shù)的表示范圍3、可以進(jìn)行的運(yùn)算合法標(biāo)識(shí)符72變量定義(聲明)數(shù)據(jù)類型變量名;

數(shù)據(jù)類型變量名1,變量名2,…,變量名n;

先定義(聲明),后使用1、分配字節(jié)數(shù)2、數(shù)的表示范圍3、可以進(jìn)行的運(yùn)算合法標(biāo)識(shí)符例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain73變量定義(聲明)數(shù)據(jù)類型變量名;

數(shù)據(jù)類型變量名1,變量名2,…,變量名n;

先定義(聲明),后使用1、分配字節(jié)數(shù)2、數(shù)的表示范圍3、可以進(jìn)行的運(yùn)算合法標(biāo)識(shí)符例2floata,b,c;c=a%b;//illegaluseoffloatingpointinfunctionmain74變量定義(聲明)變量初始化:在變量聲明時(shí)直接賦予一個(gè)初始值。數(shù)據(jù)類型變量名;

數(shù)據(jù)類型變量名1,變量名2,…,變量名n;charc="a";先定義(聲明),后使用例:inta=1,b=-3,c;floatdata=3.67;charch='A';intx=1,y=1,z=1;intx=y=z=1;/*錯(cuò)誤*/75inta=5;表示系統(tǒng)要做那些工作?給出了一個(gè)名字為a的標(biāo)識(shí)符定義了一個(gè)整型變量系統(tǒng)自動(dòng)為變量a分配了一個(gè)內(nèi)存空間(一般4個(gè)字節(jié)),其地址已經(jīng)確定。該變量存放的內(nèi)容為整數(shù)5變量定義(聲明)先定義(聲明),后使用76變量定義(聲明)先定義(聲明),后使用shorta=5;shortb=-3,c;……000000000000010111111111111110110101001010011011……2字節(jié)2字節(jié)2字節(jié)內(nèi)存地址內(nèi)存地址內(nèi)存地址變量名abc編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元。隨機(jī)數(shù)內(nèi)存77變量定義(聲明)先定義(聲明),后使用整型變量占字節(jié)數(shù)隨機(jī)器不同而不同short≤int≤long可用sizeof(類型標(biāo)識(shí)符)測(cè)量【注意】整型變量的取值范圍(超出范圍,出現(xiàn)溢出,見P20)78#include<iostream>usingnamespacestd;voidmain(){ shorta,b; a=32767;

b=a+1; cout<<"sizeof(a)="<<sizeof(a)<<",a="<<a<<endl; cout<<"sizeof(b)="<<sizeof(b)<<",b="<<b<<endl;}輸出:溢出常量和變量79變量定義(聲明)先定義(聲明),后使用

浮點(diǎn)型變量float:占4字節(jié),提供6~7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字Longdouble:占16字節(jié),提供18~19位有效數(shù)字【注意】因?yàn)橛行?shù)字有限,在進(jìn)行舍入時(shí),可能會(huì)產(chǎn)生誤差。floata=111111.111;/*a=111111.1*/doubleb=111111.111;/*b=111111.111*/80#include<iostream>usingnamespacestd;voidmain(){

floata,b; a=123456.789e5; b=a+20; cout.precision(15); cout<<b<<endl;}輸出:對(duì)于浮點(diǎn)型數(shù)據(jù),應(yīng)該避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,以免”丟失“小的數(shù)。81變量定義(聲明)先定義(聲明),后使用

字符變量charc1,c2;占1個(gè)字節(jié),存儲(chǔ)ASCII碼字符串常量。【注意】char與int數(shù)據(jù)通用能進(jìn)行算術(shù)運(yùn)算。#include<iostream>usingnamespacestd;voidmain(){charc1,c2;c1=97;c2=98;cout<<c1<<"\t"<<c2<<endl;

cout<<(int)c1<<"\t"<<(int)c2<<endl;}82變量定義(聲明)先定義(聲明),后使用

字符變量charc1,c2;占1個(gè)字節(jié),存儲(chǔ)ASCII碼字符串常量。【注意】char與int數(shù)據(jù)通用,能進(jìn)行算術(shù)運(yùn)算。chara='D';/*a=68;*/intx='A'+5;/*x=65+5;*/ints='!'+'G'/*s=33+71;*/【沒有字符串變量,用字符數(shù)組存放】83#include<iostream>usingnamespacestd;voidmain(){charc1,c2;c1='a';c2='b';c1=c1-32;c2=c2-32;

cout<<c1<<"\t"<<c2<<endl; /*以字符形式輸出*/}輸出:大小寫字母的轉(zhuǎn)換84#include<iostream>usingnamespacestd;voidmain(){ unsignedcharc1; signedcharc2; charc3; c1=128;

c2=128; c3=128;

cout<<(int)c1<<"\t"<<(int)c2<<"\t"<<(int)c3<<endl;}字符型:signedchar-128~127

unsignedchar0~255結(jié)果:c1=128c2=-128c3=-128溢出85常量和變量綜合舉例#definePRICE12.5#include<iostream>usingnamespacestd;voidmain(){ intnum=3; floattotal; charch1,ch2='D'; total=num*PRICE; ch1=ch2-'A'+'a';

cout<<"total="<<total<<",ch1="<<ch1<<endl;}宏定義變量定義輸出結(jié)果輸出:符號(hào)常量名用大寫,變量名用小寫PRICE=40;/*錯(cuò)誤,不能給符號(hào)常量賦值*/8686常變量常變量:定義變量時(shí)用關(guān)鍵字const聲明,變量的值在程序運(yùn)行期間不能改變。格式:

const

數(shù)據(jù)類型常變量名=初始值;例:const

doublePI=3.14159;//PI是常變量比較:doublepi;//pi是變量pi=3.14159【注意】常變量定義時(shí),必須初始化。87聲明常變量用關(guān)鍵字const做限定符,且必須為該常變量賦初值。在整個(gè)程序運(yùn)行期間,不允許改變常變量的值。常變量const

doublePI;PI=3.14159;常量與變量88運(yùn)算符與表達(dá)式C++運(yùn)算符算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:函數(shù)調(diào)用運(yùn)算符()學(xué)習(xí)運(yùn)算符應(yīng)注意:1、運(yùn)算符功能2、與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型3、優(yōu)先級(jí)4、結(jié)合方向89表達(dá)式程序中,通過表達(dá)式完成對(duì)數(shù)據(jù)的處理。基本形式:Page89運(yùn)算符與表達(dá)式操作數(shù)1

運(yùn)算符

操作數(shù)2操作數(shù)

運(yùn)算符運(yùn)算符

操作數(shù)表達(dá)式的值基本算術(shù)運(yùn)算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取余,操作數(shù)為整數(shù))90算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符和表達(dá)式5/2=2-5/2=-2“向零取整”-5/2.0=-2.5有一個(gè)數(shù)為float或double,結(jié)果為double基本算術(shù)運(yùn)算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取余,操作數(shù)為整數(shù))91算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符和表達(dá)式5%2=1-5%2=-1(與被除數(shù)同號(hào))5%-2=11%10=15%1=05.5%2(錯(cuò)誤)基本算術(shù)運(yùn)算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取余,操作數(shù)為整數(shù))優(yōu)先級(jí)與結(jié)合性

先乘除(取余),后加減,同級(jí)自左至右說明:“-”可為單目運(yùn)算符時(shí),自右向左(右結(jié)合)92算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符和表達(dá)式->*/%>+-(2)(3)(4)93算術(shù)運(yùn)算符與算術(shù)表達(dá)式基本算術(shù)運(yùn)算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取余,操作數(shù)為整數(shù))優(yōu)先級(jí)與結(jié)合性++,--(自增、自減)例:i++;--j;Page93運(yùn)算符和表達(dá)式操作數(shù)++++操作數(shù)->*/%>+-(2)(3)(4)94算術(shù)運(yùn)算符與算術(shù)表達(dá)式++,--(自增、自減):將操作數(shù)的值加1(減1),重新寫回該操作數(shù)在內(nèi)存中原有的位置。種類:前置++i,--i(表達(dá)式值=i的值加(減)1)

在使用i之前,先使i的值加(減)1后置i++,i--(表達(dá)式值=i)在使用i之后,再使i的值加(減)1Page94運(yùn)算符和表達(dá)式95算術(shù)運(yùn)算符與算術(shù)表達(dá)式前置++i,--i

在使用i之前,先使i的值加(減)1后置i++,i--在使用i之后,再使i的值加(減)1運(yùn)算符和表達(dá)式例

j=3;k=++j;

j=3;k=j++;

j=3;cout<<++j;

j=3;cout<<j++;

a=3;b=5;c=(++a)*b;

a=3;b=5;c=(a++)*b;

//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=496算術(shù)運(yùn)算符與算術(shù)表達(dá)式++,--(自增、自減)說明:【1】++,--(自增、自減)不能用于常量和表達(dá)式如5++,(a+b)++【2】++,--(自增、自減)自右向左Page96運(yùn)算符和表達(dá)式-,++,-->*/%>+-(2)(3)(4)例

-i++等價(jià)于-(i++)inti=3;cout<<-i++;//-397算術(shù)運(yùn)算符與算術(shù)表達(dá)式++,--(自增、自減)說明:【1】++,--(自增、自減)不能用于常量和表達(dá)式如5++,(a+b)++【2】++,--(自增、自減)自右向左Page97運(yùn)算符和表達(dá)式-,++,-->*/%>+-(2)(3)(4)例

++i++等價(jià)于++(i++)98算術(shù)運(yùn)算符與算術(shù)表達(dá)式++,--(自增、自減)說明:【1】++,--(自增、自減)不能用于常量和表達(dá)式如5++,(a+b)++【2】++,--(自增、自減)自右向左Page98運(yùn)算符和表達(dá)式-,++,-->*/%>+-(2)(3)(4)例 j+++k;(j++)+k;從左向右,將盡可能多的字符組成一個(gè)運(yùn)算符99賦值運(yùn)算符和賦值表達(dá)式

簡(jiǎn)單的賦值運(yùn)算符"="舉例

a=5

n=n+5表達(dá)式的類型

等號(hào)左邊對(duì)象的類型表達(dá)式的值

等號(hào)左邊對(duì)象被賦值后的值Page99運(yùn)算符和表達(dá)式變量名=變量取值(常量或表達(dá)式)100賦值運(yùn)算符和賦值表達(dá)式

——賦值表達(dá)式舉例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為2Page100運(yùn)算符和表達(dá)式結(jié)合方向:自右向左101賦值運(yùn)算符和賦值表達(dá)式

簡(jiǎn)單的賦值運(yùn)算符"="【說明】左側(cè)必須是變量,不能是常量或表達(dá)式3=x-2*y;a+b=3;賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型inti;i=2.56;//舍棄浮點(diǎn)數(shù)的小數(shù)部分Page101運(yùn)算符和表達(dá)式變量名=變量取值(常量或表達(dá)式)102賦值運(yùn)算符和賦值表達(dá)式

復(fù)合的賦值運(yùn)算符有10種復(fù)合賦值運(yùn)算符:

+=,-=,*=,/=,%=,

<<=,>>=,&=,^=,|=(位運(yùn)算)例

a+=3

等價(jià)于a=a+3

x*=y+8

等價(jià)于x=x*(y+8)運(yùn)算符和表達(dá)式103賦值運(yùn)算符和賦值表達(dá)式

——賦值表達(dá)式舉例a+=a-=a*a相當(dāng)于

a=a+(a=a-a*a)Page103運(yùn)算符與表達(dá)式-40inta=5;cout<<(a+=a-=a*a)<<endl;104逗號(hào)運(yùn)算和逗號(hào)表達(dá)式格式表達(dá)式1,表達(dá)式2[,…,表達(dá)式n]求解順序及結(jié)果先求解1,再求解2,最終結(jié)果為表達(dá)式2的值例a=3*5

,

a*4 x=(a=3,6*3)x=a=3,6*aPage104運(yùn)算符和表達(dá)式//a=15,表達(dá)式值60//賦值表達(dá)式,表達(dá)式值18,x=18//逗號(hào)表達(dá)式,表達(dá)式值18,x=3105逗號(hào)運(yùn)算和逗號(hào)表達(dá)式Page105運(yùn)算符和表達(dá)式#include<iostream>usingnamespacestd;voidmain(){ intx,y=7;floatz=4;x=(y=y+6,y/z);cout<<"x="<<x<<endl;}運(yùn)行結(jié)果:x=3106關(guān)系運(yùn)算與關(guān)系表達(dá)式關(guān)系運(yùn)算是比較簡(jiǎn)單的一種邏輯運(yùn)算,優(yōu)先次序?yàn)椋?/p>

<<=>>===!=

優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)關(guān)系表達(dá)式是一種最簡(jiǎn)單的邏輯表達(dá)式其結(jié)果類型為bool,值只能為true

或false。例如:a>b,c<=a+b,x+y==3運(yùn)算符與表達(dá)式107關(guān)系運(yùn)算與關(guān)系表達(dá)式#include<iostream>usingnamespacestd;intmain(){ cout<<"true="<<true;cout<<"orfalse="<<false<<endl; cout<<"(\'a\'>90)="<<('a'>90)<<endl;}運(yùn)算符與表達(dá)式true=1orfalse=0('a'>90)=1108邏輯運(yùn)算與邏輯表達(dá)式邏輯運(yùn)算符

!(非)&&(與)||(或)

優(yōu)先次序:高→低邏輯表達(dá)式

例如:(a>b)&&(++c==1)

其結(jié)果類型為bool,值只能為true

或false運(yùn)算符與表達(dá)式inta=5,b=3,c=1;truefalsec=2&&運(yùn)算符的“短路特性”inta=3,b=5,c=1;falsec=1109條件運(yùn)算符與條件表達(dá)式一般形式(唯一的三元運(yùn)算符)表達(dá)式1?表達(dá)式2:表達(dá)式3表達(dá)式1必須是bool類型執(zhí)行順序先求解表達(dá)式1,若表達(dá)式1的值為true,則求解表達(dá)式2,表達(dá)式2的值為最終結(jié)果若表達(dá)式1的值為false,則求解表達(dá)式3,表達(dá)式3的值為最終結(jié)果運(yùn)算符與表達(dá)式cout<<(score>=60?"及格":"不及格");110條件運(yùn)算符與條件表達(dá)式例:x=a>b?a:b;注意:條件運(yùn)算符優(yōu)級(jí)高于賦值運(yùn)算符表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為2和3中較高的類型。

x=a>b?a:b;運(yùn)算符與表達(dá)式①②inta=5,b=3;5(輸出a,b中較大的值)111sizeof運(yùn)算符語法形式

sizeof(類型名)

或sizeof(表達(dá)式)結(jié)果值:

“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。例:sizeof(short)sizeof(x)運(yùn)算符與表達(dá)式112位運(yùn)算——按位與(&)運(yùn)算規(guī)則將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯與操作舉例:計(jì)算3&53:000000115:(&)000001013&5:00000001運(yùn)算符與表達(dá)式113位運(yùn)算——按位或(|)運(yùn)算規(guī)則將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯或操作舉例:計(jì)算3|53:000000115:(|)000001013|5:00000111基本數(shù)據(jù)類型和表達(dá)式114位運(yùn)算——按位異或(^)運(yùn)算規(guī)則兩個(gè)操作數(shù)進(jìn)行異或:

若對(duì)應(yīng)位相同,則結(jié)果該位為0,

若對(duì)應(yīng)位不同,則結(jié)果該位為1,舉例:計(jì)算0x39^0x2a0x39: 001110010x2a:(^)001010100x39^0x2a: 00010011運(yùn)算符與表達(dá)式115位運(yùn)算——取反(~)單目運(yùn)算符,對(duì)一個(gè)二進(jìn)制數(shù)按位取反。例:025:0000000000010101~025:1111111111101010運(yùn)算符與表達(dá)式116位運(yùn)算——移位左移運(yùn)算(<<)左移后,低位補(bǔ)0,高位舍棄。相當(dāng)于×2右移運(yùn)算(>>)右移后,低位:舍棄

高位:無符號(hào)數(shù):補(bǔ)0

有符號(hào)數(shù):補(bǔ)“符號(hào)位”相當(dāng)于/2運(yùn)算符與表達(dá)式117運(yùn)算符優(yōu)先級(jí)括號(hào)()++,--,sizeof,!*,/,%+,-==,!=位運(yùn)算|^&&&||?:賦值運(yùn)算=逗號(hào)運(yùn)算,低高運(yùn)算符與表達(dá)式118混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換一些二元運(yùn)算符(算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符)要求兩個(gè)操作數(shù)的類型一致。在算術(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,unsignedlong,float,double

低高轉(zhuǎn)換精度沒有損失119混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換賦值運(yùn)算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會(huì)自動(dòng)將右值轉(zhuǎn)換為左值的類型。inta=5.3;邏輯運(yùn)算當(dāng)參與運(yùn)算的操作數(shù)必須是bool型時(shí),如果操作數(shù)是其它類型,編譯系統(tǒng)會(huì)自動(dòng)將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。cout<<('a'+10)<<“\t”<<(false||0);位運(yùn)算的操作數(shù)必須是整數(shù),當(dāng)二元位運(yùn)算的操作數(shù)是不同類型的整數(shù)時(shí),也會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。不同類型數(shù)據(jù)的轉(zhuǎn)換120混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換floatfVal;doubledVal;intiVal;unsignedlongulVal;dVal=iVal*ulVal;iVal被轉(zhuǎn)換成unsignedlong運(yùn)算結(jié)果轉(zhuǎn)換為doubledVal=ulVal+fVal;ulVal被轉(zhuǎn)換成float運(yùn)算結(jié)果轉(zhuǎn)換為double不同類型數(shù)據(jù)的轉(zhuǎn)換類型的轉(zhuǎn)換是臨時(shí)性的,并不改變變量的數(shù)據(jù)類型,僅在運(yùn)算的時(shí)刻對(duì)變量的值做了轉(zhuǎn)換。121混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換

——強(qiáng)制類型轉(zhuǎn)換語法形式:類型說明符(表達(dá)式)或(類型說明符)表達(dá)式強(qiáng)制類型轉(zhuǎn)換的作用是將表達(dá)式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。不同類型數(shù)據(jù)的轉(zhuǎn)換盡量使用同種類型數(shù)據(jù)類型的轉(zhuǎn)換是臨時(shí)性的,并不改變變量的數(shù)據(jù)類型,僅在運(yùn)算的時(shí)刻對(duì)變量的值做了轉(zhuǎn)換。floatfVale=(float)2.4;floatfVale=2.4f;122語句聲明語句表達(dá)式語句選擇語句循環(huán)語句跳轉(zhuǎn)語句復(fù)合語句標(biāo)號(hào)語句

程序的執(zhí)行流程由語句來控制123變量聲明變量初始化:在變量聲明時(shí)直接賦予一個(gè)初始值。intm=4,p=3,n(2);//說明m,p,n為基本整型變量,//且它們分別具有初始值4,3,2數(shù)據(jù)類型變量名;

數(shù)據(jù)類型變量名1,變量名2,…,變量名n;例:inta,b;

charc;

doublex,y;charc;c="a";124124常變量常變量:定義變量時(shí)用關(guān)鍵字const聲明,變量的值在程序運(yùn)行期間不能改變。格式:

const

數(shù)據(jù)類型常變量名=初始值;例:const

doublePI=3.14159;//PI是常變量比較:doublepi;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論