




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.1C+語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ).2C+程序?qū)嵗绦驅(qū)嵗?1#include using namespace std;int main() coutHello!n; coutWelcome to C+!n; return 0;運(yùn)行結(jié)果運(yùn)行結(jié)果:Hello!Welcome to C+!.3C+字符集字符集 C+字符集是C+程序中可以使用的基本符號(hào)程序中可以使用的基本符號(hào)大小寫的英文字母:大小寫的英文字母:A AZ Z,a az z數(shù)字字符:數(shù)字字符:0 09 9特殊字符:例如特殊字符:例如 空格空格 ! !# #% % & &* *_ _( (下劃線下劃線) )+ += =- - / /
2、 “; ;. ., ,()().4C+詞法記號(hào)(類似單詞)詞法記號(hào)(類似單詞) 關(guān)鍵字關(guān)鍵字C+預(yù)定義的單詞 標(biāo)識(shí)符標(biāo)識(shí)符程序員聲明的單詞,它命名程序正文中的一些實(shí)體 文字文字在程序中直接使用符號(hào)表示的數(shù)據(jù) 操作符操作符用于實(shí)現(xiàn)各種運(yùn)算的符號(hào) 分隔符分隔符 如 ; 用于分隔各個(gè)詞法記號(hào)或程序正文 空白符空白符空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋注釋的總稱.5 C+字符集類似英語(yǔ)的字母字母或者漢語(yǔ)的筆畫(huà)筆畫(huà)。 C+的詞法符號(hào)類似英語(yǔ)的單詞單詞或漢語(yǔ)的字字。 C+程序類似英語(yǔ)的十四行詩(shī)十四行詩(shī)或者漢語(yǔ)的詩(shī)詩(shī)詞歌賦詞歌賦。C+字符集、詞法符號(hào)、程序關(guān)系字符集、
3、詞法符號(hào)、程序關(guān)系.6C+詞法記號(hào)詞法記號(hào)關(guān)鍵字關(guān)鍵字 關(guān)鍵字又稱保留字,是關(guān)鍵字又稱保留字,是C+預(yù)定義的單詞預(yù)定義的單詞 關(guān)鍵字是關(guān)鍵字是C+中具有固定意義的一批英文中具有固定意義的一批英文單詞或其縮寫,有專門的用途,用在固定單詞或其縮寫,有專門的用途,用在固定的位置,的位置,不能移作它用不能移作它用。C+中共有中共有74個(gè)個(gè)關(guān)鍵字關(guān)鍵字/保留字,每一個(gè)都有自己的故事。保留字,每一個(gè)都有自己的故事。 .7C+常用關(guān)鍵字及分類常用關(guān)鍵字及分類數(shù)據(jù)類型說(shuō)明數(shù)據(jù)類型說(shuō)明符與修飾符符與修飾符bool char wchar_t class const double enum float int lo
4、ng short signed struct union unsigned void volatile存儲(chǔ)類型說(shuō)明存儲(chǔ)類型說(shuō)明符符auto extern inline register static訪問(wèn)說(shuō)明符訪問(wèn)說(shuō)明符friend private protected public其它說(shuō)明符其它說(shuō)明符asm operator template this typedef virtual 語(yǔ)句與標(biāo)號(hào)語(yǔ)句與標(biāo)號(hào)break case catch continue default do else for goto if return switch throw try while 運(yùn)算符及邏輯運(yùn)算符及邏輯值
5、值delete false new sizeof true.8C+詞法記號(hào)詞法記號(hào)標(biāo)識(shí)符標(biāo)識(shí)符 構(gòu)成規(guī)則:構(gòu)成規(guī)則: 以大寫字母、小寫字母或下劃線以大寫字母、小寫字母或下劃線(_)開(kāi)始,由開(kāi)始,由大寫字母、小寫字母、下劃線大寫字母、小寫字母、下劃線(_)或數(shù)字或數(shù)字09組成。組成。.9例例: 判斷下面哪些是合法的標(biāo)識(shí)符:判斷下面哪些是合法的標(biāo)識(shí)符:MyFile 94Salary Salary94 Salary 94 amount $amount void f3.5 Num_of_Student .10C+程序?qū)嵗绦驅(qū)嵗?2#include using namespace std;int ma
6、in() 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; return 0;.11數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)據(jù)類型告訴我們存儲(chǔ)單元中的數(shù)據(jù)的形式,及可以對(duì)存儲(chǔ)單元中的數(shù)據(jù)執(zhí)行哪些操作。 C+的數(shù)據(jù)類型可以分為基本類型基本類型、構(gòu)造類構(gòu)造類型型、指針類型指針類型、 空類型(空類型(void)四個(gè)大類。 .12基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字關(guān)鍵字字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍字符
7、型char1-128127整 型int4-21474836482147483647單精度浮點(diǎn)型float4(3.4E-383.4E38)雙精度符點(diǎn)型double8(1.7E-3081.7E308布爾型bool1true,false.13類型修飾符類型修飾符C+還允許在基本數(shù)據(jù)類型前加上類型修飾符,來(lái)更具體地表示數(shù)據(jù)類型。C+的類型修飾符包括: signed 有符號(hào) unsigned 無(wú)符號(hào) short 短型 long 長(zhǎng)型 .14數(shù)據(jù)類型標(biāo)識(shí)符數(shù)據(jù)類型標(biāo)識(shí)符字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍常量寫法舉例常量寫法舉例Char1-128127A, 0,nsigned char1-12812756unsi
8、gned char10255100short int2-3276832767100signed short int2-3276832767-3456unsigned short int 20655350 xffint 4- 2 1 4 7 4 8 3 6 4 8 21474836471000signed int4- 2 1 4 7 4 8 3 6 4 8 2147483647-123456unsigned int4042949672950 xffff.15數(shù)據(jù)類型標(biāo)識(shí)符數(shù)據(jù)類型標(biāo)識(shí)符字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍常量寫法舉例常量寫法舉例long int4- 2 1 4 7 4 8 3 6 4 8
9、 2147483647-123456long long8-263263 -1 -3246unsigned long int 404294967295123456float 4(3.4E-383.4E38)2.35, -53.231,3E-2 Double8 ( 1 . 7 E - 3 0 8 1.7E308)12.354,-2.5E10long double10 ( 1 . 2 E - 4 9 3 2 1.2E4932)8.5E-300.16說(shuō)明說(shuō)明:(1)表中帶 的部分表示是可以省略的,如short int可以寫為short int 或簡(jiǎn)寫為short,二者的含義是相同的。(2)四種修飾符都
10、可以用來(lái)修飾整型。四種修飾符都可以用來(lái)修飾整型。用signed修飾的類型的值可以為正數(shù)或負(fù)數(shù),用unsigned修飾的類型的值只能為正數(shù)。(3)用short修飾的類型,其值一定不大于對(duì)應(yīng)的整數(shù),用long修飾的類型,其值一定不小于對(duì)應(yīng)的整數(shù)。.17 C+的構(gòu)造類型是基本類型的組合,包括數(shù)組、結(jié)構(gòu)體和聯(lián)合體等 指針類型是對(duì)基本類型或構(gòu)造類型的地址進(jìn)行操作的一種數(shù)據(jù)類型。 空類型(void)是什么 也沒(méi)有的一種特殊數(shù)據(jù)類型,僅用在有限的一些情況下,通常用作無(wú)返回值函數(shù)的返回類型。 有時(shí)也被歸有時(shí)也被歸類到基本類型類到基本類型.18常量常量 在C+語(yǔ)言中,數(shù)據(jù)分為常量和變量?jī)纱箢悺?由于程序中的數(shù)據(jù)
11、是有類型的,所以常量和變量都是有類型之分的。 常量按照不同的數(shù)據(jù)類型可以分為: 字符型常量、整型常量、浮點(diǎn)型常量,以及字符串常量等。 程序是根據(jù)程序中常量的書(shū)寫格式來(lái)區(qū)分它是哪種類型常量的。.19整型常量在程序中書(shū)寫整型常量時(shí),沒(méi)有小數(shù)部分。用戶可根據(jù)需要分別可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式書(shū)寫: 十進(jìn)制格式 :由數(shù)字0至9和正、負(fù)號(hào)組成,書(shū)寫時(shí)直接寫出數(shù)字,如:123,-516,+1000等。 八進(jìn)制格式 :以數(shù)字0開(kāi)頭的數(shù)字(0至7)序列,0111,010007,0177777等。 十六進(jìn)制格式 :以0 x或0X開(kāi)頭的數(shù)字(數(shù)字0至9、字母A至Z)序列,如0 x78AC,0 xFFFF
12、等。.20浮點(diǎn)型常量 只能用十進(jìn)制來(lái)表示??梢杂眯?shù)或指數(shù)形式表示,不分單精度和雙精度類型。如:34.5 , .345, 1.5e-3.21字符型常量字符型常量 (1)用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符,單引號(hào)只是字符與其他部分的分割符,不是字符的一部分,并且,不能用雙引號(hào)代替單引號(hào)。在單引號(hào)中的字符不能是單引號(hào)或反斜杠。如: a , A, # 合法的字符常量 , 非法的字符常量 “A” 不代表字符常量 (2)另一種表示字符常量的方法是使用轉(zhuǎn)義字符。C+規(guī)定,采用反斜杠后跟一個(gè)字母來(lái)代表一個(gè)控制字符,具有新的含義 。.22C+中常用的轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符含義含義ASCII碼值(十進(jìn)制)碼值(十進(jìn)
13、制)a響鈴(BEL)7b退格(BS)8n換行(LF)10r回車(CR)13t水平制表(HT)9v垂直制表(VT)11反斜杠92單引號(hào)39”雙引號(hào)340空格符(NULL)0ddd任意字符3位八進(jìn)制數(shù)xhh任意字符2位十六進(jìn)制數(shù).23字符串常量字符串常量 用一對(duì)雙引號(hào)括起來(lái)的一個(gè)或多個(gè)字符的序列稱為字符串常量或字符串。字符串以雙引號(hào)為定界符,雙引號(hào)不作為字符串的一部分。如: “Hello”, “Good Morning!” ,“I say: “ Goodbye!” 字符串中的字符數(shù)稱為該字符串的長(zhǎng)度,在存儲(chǔ)時(shí),系統(tǒng)自動(dòng)在字符串的末尾加以字符串結(jié)束標(biāo)志,即轉(zhuǎn)義字符 0。.24符號(hào)常量符號(hào)常量常量也可
14、用一個(gè)標(biāo)識(shí)符來(lái)代表,稱為符號(hào)常量。如:#define PRICE 30int main()cout PRICEendl; return 0;使用符號(hào)常量應(yīng)注意注意以下幾個(gè)方面:(1)它不同于變量,在作用域內(nèi)其值不能改變和賦值。 如:在上例中如再用PRICE=40;這一語(yǔ)句進(jìn)行賦值則是錯(cuò)誤的。(2)符號(hào)常量名一般用大寫,而變量名用小寫,以示區(qū)別。.25在程序中的常量有以下三種表示方法:在程序中的常量有以下三種表示方法:(1)在程序中直接寫入常量(詞法記號(hào)中的文字文字)如:-200,3.4E-10,A,1,0 x120,045,5.35,1000l(2)利用#define定義宏常量(符號(hào)常量符號(hào)常
15、量)一般格式: #define 宏名 常數(shù)如:#define PI 3.14 s=2*PI*r; 程序中常量的表示方法程序中常量的表示方法.26(3)利用const定義正規(guī)常數(shù)(常變量常變量)格式:const數(shù)據(jù)類型標(biāo)識(shí)符 常量名=常量值;說(shuō)明: const必須放在被修飾類型符和類型名前面 數(shù)據(jù)類型是一個(gè)可選項(xiàng),用來(lái)指定常數(shù)值的數(shù)據(jù)類型,如果省略了該數(shù)據(jù)類型,那么編譯程序認(rèn)為它是 int 類型如:const int a=10; 表示定義了一個(gè)初始值為10的整型常量,它在程序中不可改變,但可用于表達(dá)式的計(jì)算中.271變量的概念及特點(diǎn)變量的概念及特點(diǎn) 程序中的變量是用于保存程序運(yùn)算過(guò)程中所需要的原
16、始數(shù)據(jù)、中間運(yùn)算結(jié)果和最終結(jié)果的,因此,每一變量就相當(dāng)于一個(gè)容器,對(duì)應(yīng)每一變量就相當(dāng)于一個(gè)容器,對(duì)應(yīng)著計(jì)算機(jī)內(nèi)存中的某一塊存儲(chǔ)單元。著計(jì)算機(jī)內(nèi)存中的某一塊存儲(chǔ)單元。變量的值具有以下兩個(gè)特點(diǎn):(1)“一充即無(wú)一充即無(wú)”:即將一個(gè)新數(shù)據(jù)存放到一個(gè)變量中時(shí),該變量中原來(lái)的值消失,變量的值變成了新值。如:執(zhí)行完語(yǔ)句int i; i=10; i=20;后i的值為20,而不是10。變變 量量.28(2)“取之不盡取之不盡”: 可將某個(gè)變量的值與程序中的其它數(shù)據(jù)進(jìn)行各種運(yùn)算,在運(yùn)算過(guò)程中,如果沒(méi)有改變?cè)撟兞康闹禃r(shí),那么,不管用該變量的值進(jìn)行多少次運(yùn)算,其值始終保持不變。 如:語(yǔ)句int i,j,k; i=1
17、0; j=i+10; k=i+j*5;其中,i的值可無(wú)限制地多次使用,但它的值始終保持值10,因?yàn)樵诔绦蛑袥](méi)有改變變量i的值。.292定義變量定義變量(變量聲明變量聲明) 程序中的每一變量,都要先定義,后使用程序中的每一變量,都要先定義,后使用。定義變量一般有以下三種格式:數(shù)據(jù)類型標(biāo)識(shí)符數(shù)據(jù)類型標(biāo)識(shí)符 變量名;變量名;數(shù)據(jù)類型標(biāo)識(shí)符數(shù)據(jù)類型標(biāo)識(shí)符 變量名變量名=初始化值;初始化值;數(shù)據(jù)類型標(biāo)識(shí)符數(shù)據(jù)類型標(biāo)識(shí)符 變量名變量名1=初始值初始值1,變量名,變量名2=初始值初始值2,;.30如:char a; /定義字符型變量aint i=1000; /定義整型變量i,i的初始值為1000;float
18、 a=2,b=3,c; /*定義浮點(diǎn)型變量 a、b、c,且a、 b的初始值分別為2、3。*/ .313定義變量的位置定義變量的位置 在程序中的不同位置采用不同的變量定義方式,決定了該變量具有不同的特點(diǎn)。變量的定義一般可有以下三種位置:(1)在函數(shù)體內(nèi)部 在函數(shù)體內(nèi)部定義的變量稱為局部變量,這種局部變量只在進(jìn)入定義它的函數(shù)體時(shí)起作用,離開(kāi)該函數(shù)體后該變量就消失(被釋放),即不再起作用。因此,不同函數(shù)體內(nèi)部可以定義相同名稱的變量,而互不干擾。如: .32void func1() int y; y=2;void func2() int y; y=-100;.33(2)形式參數(shù) 當(dāng)定義一個(gè)有參函數(shù)時(shí),
19、函數(shù)名后面括號(hào)內(nèi)的變量,統(tǒng)稱為形式參數(shù)。如:int is_in(char *a, char b) while(*a) if (*a=b) return 1; else a+; return 0;.34(3)全局變量:在所有函數(shù)體外部定義的變量,其作用范圍是整個(gè)程序,并在整個(gè)程序運(yùn)行期間有效。如:int count; /定義count變量是全局變量void func1(); void func2();int main() count=10; func1();.35void func1() int temp; temp=count; func2(); printf(“count is %d”, c
20、ount); / /輸出10void func2() int count; for(count=1;counta 變量名一般要以小寫字母開(kāi)頭,且見(jiàn)名知義。變量名一般要以小寫字母開(kāi)頭,且見(jiàn)名知義。 .37算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式 算術(shù)運(yùn)算符就是對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,如:加、減、乘、除等,是在程序中使用最多的一種運(yùn)算符,C+的算術(shù)運(yùn)算符如表所示。 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式.38運(yùn)算符運(yùn)算符功能功能數(shù)據(jù)類型數(shù)據(jù)類型例子例子-負(fù)號(hào)數(shù)值x=-y;+加數(shù)值z(mì)=x+y;-減數(shù)值z(mì)=x-y;*乘數(shù)值z(mì)=x*y/除數(shù)值z(mì)=x/y;%求余整數(shù)z=x%y+自加數(shù)值z(mì)+或+zC+的算術(shù)運(yùn)算符的算
21、術(shù)運(yùn)算符 -自減數(shù)值z(mì)-或-z.39(1+x)/(3*x)(2*x-3)*x+2)*x)-53.14*sqrt(r)b*b-4.0*a*c.40算術(shù)運(yùn)算符注意事項(xiàng)算術(shù)運(yùn)算符注意事項(xiàng) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 / 有整除和一般除法兩種功能。如果兩個(gè)操作數(shù)都是整數(shù),/ 的功能就是整除,否則就是一般除法。例如: 3 / 2 =1 3 / 2.0 =1.5 3.0 / 2 =1.5 a+與+a(a-與-a)a+的功能是:a的值增1,a+的值是a增加前的值; +a的功能是: a的值增1,+a的值是a增加后的值; +a可以用作左值,即能放在賦值號(hào)的左邊。.41賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 賦值
22、運(yùn)算符的功能將某個(gè)數(shù)據(jù)的值賦給某個(gè)變量。格式:變量名 賦值運(yùn)算符 表達(dá)式說(shuō)明:(1)被賦值的目標(biāo),即賦值運(yùn)算符左邊的量必須是變量,而不能是常量或表達(dá)式。.42(2)C+中的賦值運(yùn)算符表(3)要注意區(qū)分賦值運(yùn)算符“=”與數(shù)學(xué)上的“等號(hào)”間的區(qū)別賦值運(yùn)算符賦值運(yùn)算符例子例子等價(jià)形式等價(jià)形式=x=x+yx=x+y+=x+=y+zx=x+(y+z)-=x-=y+zx=x-(y+z)*=x*=y+zx=x*(y+z)/=x/=y+zx=x/(y+z)%=x%=y+zx=x%(y+z).43關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算符就是對(duì)兩個(gè)量之間進(jìn)行比較的運(yùn)算符。關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義含
23、義例子例子10=小于或等于(x+y)*2大于x+yz=大于或等于x-y=a*b+2= =等于x+y=a+b!=不等于x-y!=0.44 由關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接形成的運(yùn)算式子是關(guān)系表達(dá)式,一個(gè)關(guān)系表達(dá)式的值是一個(gè)邏輯值,當(dāng)為真時(shí),值為1,為假時(shí),值為0。如:假設(shè)a=1,b=20,c=3,則a10)&邏輯與(i1) & (ic)的值為1(真)。.47(2)在邏輯表達(dá)式的求值過(guò)程中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的值時(shí),才執(zhí)行該運(yùn)算符。 a & b & c 只有a為真時(shí),才需要判別b的值,只有a和b的值都為真時(shí)才需要
24、判別c的值。如:int i=10;則表達(dá)式i & (i=0) & (+i)的值為0(假),該表達(dá)式運(yùn)算結(jié)束后,變量i的值為0,而不是1。.48 a | b|c 只要a為真,就不必須判斷b和c;只有a為假,才判別b;a和b 都為假才判別c。如:int i=1,j; 則表達(dá)式i+|i+|i+的值為1(真),運(yùn)算結(jié)束后,變量i的值為2,而不是4。.49int n=3,m=6;if (n4) & (m+10)cout“m should not changed.n”;cout“m= “mendl;.50 對(duì)于數(shù)學(xué)上的表示多個(gè)數(shù)據(jù)間進(jìn)行比較的表達(dá)式,在C+中要拆寫成多個(gè)條件并用邏輯
25、運(yùn)算符連接形成一個(gè)邏輯表達(dá)式。如:在數(shù)學(xué)上,要表示一個(gè)變量a的值處于-1和-9之間時(shí),可以用-9a-9) & (a-1),而不能寫成-9a-1。因?yàn)椋僭O(shè)變量a當(dāng)前的值為-5,它的值確實(shí)處在-1和-9之間,但在C+語(yǔ)言中求-9a-1時(shí),從左向右進(jìn)行計(jì)算,先計(jì)算-9a,得1 (真),此時(shí)該表達(dá)式可簡(jiǎn)化為1-9) & (ab?a:b的值為4.52條件表達(dá)式可以嵌套:xy?”great than”:x= =y?”equal to”:”less than”它等價(jià)于:(xy)?”great than”:(x= =y)?”equal to”:”less than”)在條件表達(dá)式中,如果后面
26、兩個(gè)表達(dá)式的值類型相同,均為左值,則該條件表達(dá)式的值為左值表達(dá)式。int x=5;long a,b;(x?a:b)=1;(x?x:a)=2; /error:x和a不同類型(x= =2?1:a)=3; /error:1非左值.53位運(yùn)算符位運(yùn)算符1位運(yùn)算符及其運(yùn)算規(guī)則位運(yùn)算符及其運(yùn)算規(guī)則 所謂位運(yùn)算符是指能進(jìn)行二進(jìn)制位運(yùn)算的運(yùn)算符。C+提供的位運(yùn)算符:運(yùn)算符含義例子&按位與i&128|按位或j|64按位異或j12按位取反j按位左移i按位右移j2.54位運(yùn)算的運(yùn)算規(guī)則為:(1)按位與&:兩個(gè)運(yùn)算量相應(yīng)的位都是1,則該位的結(jié)果值為1,否則為0;(2)按位或|:兩個(gè)運(yùn)算量相應(yīng)的
27、位只要有一個(gè)是1,則該位的結(jié)果值為1,否則為0;(3)按位異或:兩個(gè)運(yùn)算量相應(yīng)的位不同,則該位的結(jié)果值為1,否則為0;(4)按位取反:將運(yùn)算量的每一位取反。.55(5)按位左移:將操作數(shù)中的每一位向右移動(dòng)指定的位數(shù),移出的位被舍棄,空出的位補(bǔ)0或補(bǔ)符號(hào)位。.56例子如:a=5,b=6,則:a 00000101 00000101 00000101b &00000110 00000110 00000110 00000110 00000100 00000111 00000011 11111001即:a&b=4,a|b=7,ab=3,b=249。 .572復(fù)合位運(yùn)算符復(fù)合位運(yùn)算符 位運(yùn)
28、算符與賦值運(yùn)算符結(jié)合可以形成復(fù)合位運(yùn)算符。運(yùn)算符例子等價(jià)形式&=x&=y+zx=x&(y+z)|=x|=x+2x=x|(x+2)=x=yx=xy=x=y+zx=x=x=y+zx=x(y+z).58逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 逗號(hào)運(yùn)算符的運(yùn)算優(yōu)先級(jí)是最低的。一般形式為:表達(dá)式1,表達(dá)式2,表達(dá)式N 在計(jì)算逗號(hào)表達(dá)式的值時(shí),按從左至右的順序依次分別計(jì)算各個(gè)表達(dá)式的值,而整個(gè)逗號(hào)表達(dá)式的值和類型是由最右邊的表達(dá)式?jīng)Q定。 如:有語(yǔ)句int a=3,b=4;則表達(dá)式a+,b+,a+b的值為9。 再如:設(shè)有int i;則表達(dá)式i=1,i+=2?i+1:i+4的值為6。.59該運(yùn)算符的功能
29、是將某一數(shù)據(jù)從一種數(shù)據(jù)類型向另一種數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。其使用的一般形式:數(shù)據(jù)類型標(biāo)識(shí)符 (表達(dá)式)(數(shù)據(jù)類型標(biāo)識(shí)符)表達(dá)式如:int i=2;float a,b;a=float(i);/將變量i的類型強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型, 并將其值賦給變量ab=(float)i;/將變量i的類型強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型, 并將其值賦給變量b強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符.60每個(gè)運(yùn)算符都有自己優(yōu)先級(jí)和結(jié)合性。當(dāng)一個(gè)表每個(gè)運(yùn)算符都有自己優(yōu)先級(jí)和結(jié)合性。當(dāng)一個(gè)表達(dá)式中包含多個(gè)運(yùn)算符時(shí),要確定運(yùn)算的結(jié)果,達(dá)式中包含多個(gè)運(yùn)算符時(shí),要確定運(yùn)算的結(jié)果,必須首先確定運(yùn)算的先后順序,即運(yùn)算符的優(yōu)必須首先確定運(yùn)算的先后順序,即運(yùn)算符的
30、優(yōu)先級(jí)和結(jié)合性。先級(jí)和結(jié)合性。C+中運(yùn)算符的優(yōu)先級(jí)和結(jié)合中運(yùn)算符的優(yōu)先級(jí)和結(jié)合性如表性如表2.11所示。所示。 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)與結(jié)合性.61優(yōu)先級(jí)運(yùn)算符結(jié)合性1() : - . .* -*自左至右2! + - + - * & (類型) sizeof new delete自右至左3* / %自左至右4+ -自左至右5自左至右6 =自左至右7= !=自左至右8&自左至右9自左至右10|自左至右11&自左至右12|自左至右13?:自右至左14= += -= *= /= %= = &= = |=自右至左15,自左至右C+中運(yùn)算符的優(yōu)先級(jí)和結(jié)合性中運(yùn)
31、算符的優(yōu)先級(jí)和結(jié)合性 .62 輸出流對(duì)象輸出數(shù)據(jù)的語(yǔ)句格式為: cout數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n;說(shuō)明:(1)cout是系統(tǒng)預(yù)定義的一個(gè)標(biāo)準(zhǔn)輸出設(shè)備(一般代表顯示器);“”是輸出操作符,用于向cout輸出流中插入數(shù)據(jù)。(2)cout的作用是向標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),被輸出的數(shù)據(jù)可以是常量、已有值的變量或是一個(gè)表達(dá)式。數(shù)據(jù)的輸出數(shù)據(jù)的輸出cout.63(3)可以在cout輸出流中插入C+中的轉(zhuǎn)義字符。如:cout “Input the value of a:n;couta; 表示輸出完字符串Input the value of a:后,在下一行輸出變量a的值。(4)可以將多個(gè)被輸出的數(shù)據(jù)寫在一個(gè)cou
32、t中,各輸出項(xiàng)間用“”操作符隔開(kāi)即可,但要注意cout首先按從右向左的順序從右向左的順序計(jì)算出各輸出項(xiàng)的值,然后再輸出各項(xiàng)的值。.64如:cout value of a:a value of b:b The result is : sqrt(a*a+b*b);再 如 : 設(shè) 變 量 i 的 值 為 1 0 , 則couti,i+,i+;的輸出結(jié)果為:的輸出結(jié)果為:12,11,10(5)一個(gè)cout語(yǔ)句也可拆成若干行書(shū)寫,但注意語(yǔ)句結(jié)束符“;”只能寫在最后一行上。如:對(duì)于上面的語(yǔ)句也可寫成如下形式: .65cout value of a: /注意行末無(wú)分號(hào) a value of b: b The
33、 result is : sqrt(a*a+b*b); /在此處書(shū)寫分號(hào).66(6)在cout中,實(shí)現(xiàn)輸出數(shù)據(jù)換行功能的方法:既可使用轉(zhuǎn)義字符“n”,也可使用表示行結(jié)束的流操作endl。如:coutThis is first Line.nThis is second line. ;上面語(yǔ)句可等價(jià)地寫為:coutThis is first Line.endlThis is second line. ;.67(7)在cout中還可以使用流控制符控制數(shù)據(jù)的輸出格式。I/O流的常用控制符控制符功能dec十進(jìn)制數(shù)輸出hex十六進(jìn)制數(shù)輸出oct八進(jìn)制數(shù)輸出setfill(c)在給定的輸出域?qū)挾葍?nèi)填充字符c
34、setprecision(n)設(shè)顯示小數(shù)精度為n位setw(n)設(shè)域?qū)挒閚個(gè)字符setiosflags(ios:fixed)固定的浮點(diǎn)顯示.68setiosflags(ios:scientific)指數(shù)顯示setiosflags(ios:left)左對(duì)齊setiosflags(ios:right)右對(duì)齊setiosflags(ios:skipws)忽略前導(dǎo)空白setiosflags(ios:uppercase)十六進(jìn)制數(shù)大寫輸出setiosflags(ios:lowercase)十六進(jìn)制數(shù)小寫輸出setiosflags(ios:showbase)按十六八進(jìn)制輸出數(shù)據(jù)時(shí),前面顯示前導(dǎo)符0 x;.
35、69 設(shè)置域?qū)挘核^域?qū)捑褪潜惠敵鰯?shù)據(jù)所占的輸出寬度(單位是字符數(shù))。設(shè)置域?qū)捒梢允褂昧骺刂品鹲etw(n)和cout的方法cout.width(n) 其中n為正整數(shù),表示域?qū)?。但是?cout.width(n)和setw(n)二者都只對(duì)下一個(gè)被輸出的數(shù)據(jù)有作用,若一個(gè)輸出語(yǔ)句內(nèi)有多個(gè)被輸出的數(shù)據(jù),而要保持一定格式域?qū)挄r(shí),需要在每一輸出數(shù)據(jù)前加上需要在每一輸出數(shù)據(jù)前加上cout.width(n)或或setw(n)。 .70 此外,當(dāng)參數(shù)n的值比實(shí)際被輸出數(shù)據(jù)的寬度大時(shí),則在給定的域?qū)拑?nèi),數(shù)據(jù)靠右輸出,不足部分自動(dòng)填充空格符;若被輸出數(shù)據(jù)的實(shí)際寬度比n值大時(shí),則數(shù)據(jù)所占的實(shí)際位數(shù)輸出數(shù)據(jù),設(shè)置域
36、寬的參數(shù)n不再起作用。.71例例 cout流控制符setw的使用。#include using namespace std;int main() int a=21,b=999; coutsetw(3)asetw(4)asetw(5)aendl; cout.width(3); coutb; cout.width(4); coutb; return 0;.72其輸出結(jié)果是:21 21 21 /程序中第一個(gè)cout的輸 出結(jié)果999999.73 設(shè)置域內(nèi)填充字符:在默認(rèn)情況下,當(dāng)被輸出的數(shù)據(jù)未占滿域?qū)挄r(shí),會(huì)自動(dòng)在域內(nèi)靠左邊填充相應(yīng)個(gè)數(shù)的空格符。但我們也可以設(shè)置在域內(nèi)填充其他的字符,方法是利用cout
37、的fill方法cout.fill(c)或setfill(c)。 cout.fill(c)上和 setfill(c)可以對(duì)所有被輸出的數(shù)據(jù)起作用。.74例例 在例2-2的基礎(chǔ)上增加域內(nèi)填充字符的功能。#include using namespace std;int main() int a=21,b=999; cout.fill(#);/設(shè)置域內(nèi)填充字符為#字符 coutsetw(3)asetw(4)a setw(5)aendl;.75 coutsetw(3)bsetw(4) bsetw(5)bendl; cout.fill(%);/將域內(nèi)填充字符改為%字符coutsetw(3)a+bsetw(
38、4) a+bsetw(5)a+bendl; return 0;.76其輸出結(jié)果是:#21#21#21 /程序中第一個(gè)cout的輸出結(jié)果, 未占滿域?qū)挼牟糠痔畛?字符。999#999#999 /程序中第二個(gè)cout的輸出結(jié)果10201020%1020 /程序中第三個(gè)cout的輸出結(jié)果, 未占滿域?qū)挼牟糠痔畛?字符。.77 設(shè)置輸出數(shù)據(jù)的進(jìn)位計(jì)數(shù)制:在默認(rèn)情況下,被輸出的數(shù)據(jù)按十進(jìn)制格式輸出。但可以使用流控制符hex和oct控制數(shù)據(jù)的輸出格式為十六進(jìn)制和八進(jìn)制,一旦設(shè)置成某種進(jìn)位計(jì)數(shù)制后,數(shù)據(jù)的輸出就以該種數(shù)制為主,可利用流控制符dec將數(shù)制重新成十進(jìn)制。.78int a=21,b=999;coutsetw(3)setfill(#)hexaendl; coutsetw(3)bendl;coutsetw(3)setfill(#)octbendl; coutsetw(3)bsetw(4) bsetw(5)bendl;coutsetw(3)setfill(#)decaendl;coutsetw(3)bsetw(4) bsetw(5)bendl;.79程序的輸出結(jié)果為:#15 /以十六進(jìn)制格式輸出數(shù)據(jù)3e7#25 /以八進(jìn)制格式輸出數(shù)據(jù)1747#21 /以十進(jìn)制格式輸出數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理發(fā)展與教育
- 中醫(yī)護(hù)理技術(shù)對(duì)黃疸的治療
- 餐飲店員工績(jī)效考核與晉升合同
- 系統(tǒng)化代牧養(yǎng)殖合同范本
- 餐飲連鎖總經(jīng)理任期目標(biāo)與績(jī)效考核合同
- 礦產(chǎn)資源開(kāi)采安全生產(chǎn)責(zé)任書(shū)范本
- 城市更新改造項(xiàng)目舊廠房物業(yè)財(cái)產(chǎn)移交及改造合同
- 車輛無(wú)償租賃與品牌合作推廣合同
- 車輛合伙經(jīng)營(yíng)運(yùn)輸市場(chǎng)拓展協(xié)議
- 餐館廚師崗位競(jìng)聘與選拔合同
- VDA6.3-2023版培訓(xùn)教材課件
- 2025年GCP(藥物臨床試驗(yàn)質(zhì)量管理規(guī)范)相關(guān)知識(shí)考試題與答案
- 建筑施工現(xiàn)場(chǎng)防汛方案
- 2022年寧夏回族自治區(qū)7月普通高中學(xué)業(yè)水平測(cè)試生物試卷會(huì)考試題及答案
- 婚紗攝影市場(chǎng)分析與前景預(yù)測(cè)
- 口腔內(nèi)科學(xué)練習(xí)題庫(kù)(附答案)
- 金蝶云星空操作手冊(cè)V3
- 醫(yī)學(xué)臨床“三基”訓(xùn)練護(hù)士分冊(cè)(第五版)考試題(附答案)
- 安徽省合肥市蜀山區(qū)2025年中考物理一模模擬試卷附參考答案
- 加氣站反恐怖防范安全風(fēng)險(xiǎn)評(píng)價(jià)報(bào)告
- 2025年吉林國(guó)資委出資企業(yè)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論