第1章 C++基礎知識_第1頁
第1章 C++基礎知識_第2頁
第1章 C++基礎知識_第3頁
第1章 C++基礎知識_第4頁
第1章 C++基礎知識_第5頁
已閱讀5頁,還剩48頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1第第1章章C+C+基礎知識基礎知識2本章要點本章要點1.1 1.1 程序設計語言的基本概念程序設計語言的基本概念( (自學自學) )1.2 C+1.2 C+程序的基本結構程序的基本結構1.3 1.3 一個應用程序的開發過程一個應用程序的開發過程( (在第在第2 2章介紹章介紹) ) 1.4 C+1.4 C+的詞法規則的詞法規則 1.5 C+1.5 C+基本數據類型基本數據類型1.6 1.6 常量與變量常量與變量1.7 1.7 運算符與表達式運算符與表達式31.1 程序設計語言的基本概念程序設計語言的基本概念(自學自學) 面向過程的結構化程序設計語言面向過程的結構化程序設計語言 從從求解問題求

2、解問題的功能入手的功能入手 按照工程的標準和嚴格的規范將求解問題分解為若干按照工程的標準和嚴格的規范將求解問題分解為若干功能模塊功能模塊 在軟件設計和實現過程中,采用自頂向下、逐步細化在軟件設計和實現過程中,采用自頂向下、逐步細化的模塊化程序設計原則的模塊化程序設計原則結構化程序設計的分解突出:如何做?強調代結構化程序設計的分解突出:如何做?強調代碼的功能是如何得以完成。碼的功能是如何得以完成。41.1 程序設計語言的基本概念程序設計語言的基本概念(自學自學) 面向對象的程序設計語言有兩類面向對象的程序設計語言有兩類 一類是完全面向對象的語言一類是完全面向對象的語言 一類是兼顧面向過程和面向對

3、象的混合式語言一類是兼顧面向過程和面向對象的混合式語言(C+(C+語語言就是一種典型代表言就是一種典型代表 ) )將問題分解為對象,對象的數據將問題分解為對象,對象的數據屬性,作用于數據的操屬性,作用于數據的操作作方法,將屬性和方法封裝成一個整體,供程序設計者使方法,將屬性和方法封裝成一個整體,供程序設計者使用。對象之間的相互作用通過消息傳遞來實現。用。對象之間的相互作用通過消息傳遞來實現。程序設計模式:程序設計模式:“對象消息對象消息”面向對象的分解突出:做什么?大量的工作由相面向對象的分解突出:做什么?大量的工作由相應的對象來完成,程序員在應用程序中只需說明應的對象來完成,程序員在應用程序

4、中只需說明要求對象完成的任務。要求對象完成的任務。51.2 C+程序的基本結構程序的基本結構 C+C+程序的結構程序的結構 聲明區聲明區 函數區函數區6例例1.1從鍵盤輸入圓的半徑,求圓的面積從鍵盤輸入圓的半徑,求圓的面積./聲明區聲明區( (在函數之外在函數之外) )#include #include double const PI=3.14159;double const PI=3.14159;float sum(float x);float sum(float x);/函數區函數區void main( )void main( ) float r,s; float r,s; coutInp

5、ut r:; coutr; cinr; s=sum(r); s=sum(r); coutr=r s= sendl; coutr=r s= sendl; float sum(float x)float sum(float x) return PI return PI* *x x* *x;x; 一個程序:一個程序:(1)(1)由由1 1個個主函數主函數mainmain和和多個多個( (或或0 0個個) )其他函數組成其他函數組成; ;(2)(2)每個函數都是由每個函數都是由函數聲明函數聲明部分與部分與函數體函數體部分組成部分組成; ; 函數聲明部分包括函數函數聲明部分包括函數返回值類型返回值類型、

6、函數名函數名、形形式參數式參數; ; 函數體部分是用一對花括號函數體部分是用一對花括號 括起來的完成該函括起來的完成該函數所表達的功能的語句的集合數所表達的功能的語句的集合; ;(3)(3)程序的執行從程序的執行從mainmain函數開始函數開始; ;(4)(4)語句可以是語句可以是數據描述數據描述語句或語句或數據操作數據操作語句。語句。聲明區可能需要編寫:聲明區可能需要編寫:(1)包含文件)包含文件(2)宏定義。)宏定義。(3)函數聲明)函數聲明(4)條件編譯)條件編譯(5)全局量聲明)全局量聲明(6)結構體等的定義)結構體等的定義(7)類的定義)類的定義71.2 C+程序的基本結構程序的基

7、本結構 C+C+程序通常分成幾個文件:程序通常分成幾個文件: 頭文件(頭文件(.h.h文件)文件)包括類定義,構成所定義對象的包括類定義,構成所定義對象的接口接口可以是可以是C+C+系統文件或用戶定義文件系統文件或用戶定義文件 C+C+源程序(源程序(.cpp.cpp文件)文件)可由一個或多文件組成可由一個或多文件組成 類庫文件(類庫文件(.lib.lib文件、文件、.obj.obj文件)文件)包括類方法的實現代碼包括類方法的實現代碼#include #include double const PI=3.14159;double const PI=3.14159;float sum(float

8、 x);float sum(float x);void main( )void main( ) float r,s; float r,s; coutInput r:; coutr; cinr; s=sum(r); s=sum(r); coutr=r ; coutr=r ; couts= sendl; couts= sendl; float sum(float x)float sum(float x) return PI return PI* *x x* *x;x; 81.2 C+程序的基本結構程序的基本結構 C+C+程序的書寫格式程序的書寫格式(1 1)每行一般書寫一條語句)每行一般書寫一條語

9、句(2 2)每條語句以)每條語句以“;”分號結束分號結束(3 3)使用向右縮進方法)使用向右縮進方法 表達程序中的層次結構表達程序中的層次結構花括號花括號( (定界符定界符) )中的字符右縮進。中的字符右縮進。如函數體、循環體、如函數體、循環體、ifelse ifelse 語句體等語句體等(4 4)可使用多行注釋或單行注釋)可使用多行注釋或單行注釋 以增強程序的可讀性以增強程序的可讀性多行注釋多行注釋:“/:“/* *”開始,以開始,以“* */”/”結束,占據多行。結束,占據多行。單行注釋單行注釋:“/”:“/”開始,占據一行。開始,占據一行。#include #include double

10、 const PI=3.14159;double const PI=3.14159;float sum(float x);float sum(float x);void main( )void main( ) float r,s; float r,s; coutInput r:; coutr; cinr; s=sum(r); s=sum(r); coutr=r ; coutr=r ; couts= sendl; couts= sendl; float sum(float x)float sum(float x) return PI return PI* *x x* *x;x; float r,

11、s; float r,s; coutInput r:; coutr; cinr; s=sum(r); s=sum(r); coutr=r ; coutr=r ; couts= sendl; couts= sendl;91.4 C+的詞法規則的詞法規則 C+C+的字符集組成的字符集組成 (1 1)2626個小寫字母:個小寫字母:a az z。(2 2)2626個大寫字母:個大寫字母:A AZ Z。(3 3)1010個數字:個數字:0 09 9。(4 4)標點和特殊字符:)標點和特殊字符:+ - + - * * / , : ; ? ” | ! # % / , : ; ? ” | ! # % &am

12、p; ( ) & ( ) 空格。空格。(5 5)空字符:)空字符:ASCIIASCII碼為碼為0 0的字符,用作字符串的結束符的字符,用作字符串的結束符101.4 C+的詞法規則的詞法規則 標識符標識符 以字母或下劃線開頭,后跟字母、下劃線和數字組成以字母或下劃線開頭,后跟字母、下劃線和數字組成的字符序列,字母大小寫是不同的。的字符序列,字母大小寫是不同的。 用來命名用來命名C+C+程序中的常量、變量、函數、語句標號程序中的常量、變量、函數、語句標號及類型定義符等。及類型定義符等。例例: Aa: Aa、ABCABC、A_YA_Y、ycx11ycx11、_name_name是合法標識符。

13、是合法標識符。 而而5xyz5xyz、m.xm.x、!abc!abc、x-yx-y是非法標識符。是非法標識符。111.4 C+的詞法規則的詞法規則 關鍵字關鍵字關鍵字(關鍵字(保留字保留字)是系統已經預定義的單詞,有專用)是系統已經預定義的單詞,有專用的定義。這些關鍵字都是保留字,用戶不可再重新定的定義。這些關鍵字都是保留字,用戶不可再重新定義。義。121.5 C+基本數據類型基本數據類型 見見P11P11表表1-21-2131.6 常量與變量常量與變量 常量常量 在程序運行過程中,其值不能被改變的量。在程序運行過程中,其值不能被改變的量。 常量的定義格式:常量的定義格式:類型類型 const

14、const 常量名常量名= =常量值常量值; ;或或#define #define C+C+程序中有程序中有4 4種常量種常量整型常量、浮點型常量、字符常量和字符串常量。整型常量、浮點型常量、字符常量和字符串常量。例如:例如: const PI=3.14159;const PI=3.14159;PIPI為符號常量名為符號常量名C+C+推薦推薦為什么不使用為什么不使用 作作為常量標識符為常量標識符? ?符號常量是一個用來替符號常量是一個用來替代常量的標識符。這是代常量的標識符。這是宏定義。宏定義。141.6 常量與變量常量與變量 整型常量定義格式:整型常量定義格式: int int const

15、const 常量名常量名= =常量值常量值 const int const int 常量名常量名= =常量值;常量值;例如例如, , int const x=10;int const x=10;? ? x=20; x=20; 是否可行是否可行? ? 整型常量可分為整型常量可分為: : 十進制十進制: 123 -35 32767 0: 123 -35 32767 0 八進制八進制: : 0 05 012 015 012 01 十六進制十六進制: : 0 x0 x10 0XFF 0 x810 0XFF 0 x8 018018 ? ?0 x1G0 x1G ? ?151.6 常量與變量常量與變量 浮點

16、型常量(實型常量)定義浮點型常量(實型常量)定義floatfloat const const 常量名常量名= =常量值;常量值;doubledouble const const 常量名常量名= =常量值;常量值;例如:例如:float const y=2.1;float const y=2.1; 兩種表示形式:兩種表示形式: 小數形式:小數形式:3.14159 2.71828 0.0 .54 3.14159 2.71828 0.0 .54 指數形式:指數形式:0.3e2 1.23e-2 0.3e2 1.23e-2 e2 1.2e2.5e2 1.2e2.5 ? ?0.3 0.3 10 102 2

17、 1.23 1.23 10 10-2-2 3.145268 3.145268 7 7位有效數字位有效數字3.141592653589793 3.141592653589793 1616有效數字有效數字 161.6 常量與變量常量與變量 字符常量定義:字符常量定義:char char const const 常量名常量名= =常量值;常量值; 說明:說明: 字符字符常量用單引號括起來,例常量用單引號括起來,例AA 字符串字符串常量用雙引號括起來,例常量用雙引號括起來,例abfgTYNabfgTYN 思考:思考: ab ab 是否可作為是否可作為C+C+常量?常量? ab ab a a b b 1

18、71.6 常量與變量常量與變量 字符串常量是由雙引號括起來的一串字符。字符串常量是由雙引號括起來的一串字符。例如例如“string”,string”,長度為長度為6 6, ,在內存中占在內存中占7 7個字節個字節 在在C+C+中,系統在每個字符串的最后自動加入一個字符中,系統在每個字符串的最后自動加入一個字符00作為字符串的結束標志。作為字符串的結束標志。 以下哪個是字符串以下哪個是字符串? ?A “house” How do you do. $abcA “house” How do you do. $abc“house”“house” 181.6 常量與變量常量與變量轉義字符轉義字符 又稱反

19、斜線字符又稱反斜線字符 這些字符常量總是以一個這些字符常量總是以一個“”開頭,后跟特定的字符來開頭,后跟特定的字符來代表某一個特定的代表某一個特定的ASCIIASCII字符。字符。 字符形式字符形式功功 能能字符形式字符形式功功 能能nn換行換行tt水平跳格水平跳格bb退格退格ff換頁換頁vv垂直跳格垂直跳格單引號單引號 雙引號雙引號00空字符空字符斜杠斜杠dddddd1313位八進制數所代表的字符位八進制數所代表的字符aa報警報警xhhxhh1212位十六進制數所代表的字符位十六進制數所代表的字符rr回車回車A的的ASCII碼值為碼值為65(10十進十進制數制數),其八進制數為其八進制數為1

20、01,寫成寫成轉義字符的轉義字符的ddd為為101,寫成寫成xhh為為x41191.6 常量與變量常量與變量 求字符串求字符串 “ mx42tp101qy” mx42tp101qy” 的長度的長度 x42x42、tt、101101為轉義字符,字符長度為為轉義字符,字符長度為8 8 可以使用函數可以使用函數strlen(”mx42tp101qy”)strlen(”mx42tp101qy”)計算計算 思考思考(回顧常量)(回顧常量) 0 xA5 2.5e-2 57 “a”0 xA5 2.5e-2 57 “a”是否可作為是否可作為C+C+常量?常量? .45 .45 123 25.6e-2 4e3

21、123 25.6e-2 4e3 是否合法?是否合法?“m“mx42x42ttp p101101qy”qy” 123123201.6 常量與變量常量與變量 變量變量 是指在程序運行過程中,其值可以發生變化的量。是指在程序運行過程中,其值可以發生變化的量。 變量的變量的命名規則命名規則與用戶標識符相同與用戶標識符相同 變量有名字、類型和值三個要素變量有名字、類型和值三個要素由字母、數字、下劃線由字母、數字、下劃線構成,并以字母、下劃構成,并以字母、下劃線開頭。線開頭。 標明變量在內存的存儲位置標明變量在內存的存儲位置變量所存儲的數據值變量所存儲的數據值變量類型變量類型 變量所占的存儲字節數變量所占

22、的存儲字節數211.6 常量與變量常量與變量 變量的數據類型及其定義變量的數據類型及其定義 定義變量的格式:定義變量的格式: ;例如:例如:int x; int y; int x; int y; int x, y;int x, y;char ch;char ch; 變量必須先定義后使用。變量必須先定義后使用。變量必須先定義后使用。變量必須先定義后使用。int x, y;int x, y;221.6 常量與變量常量與變量 變量的存儲類型變量的存儲類型 變量的存儲類型定義變量的有效性范圍,即作用域。變量的存儲類型定義變量的有效性范圍,即作用域。 C+C+中有中有4 4類:類: 自動存儲類(自動存儲

23、類(autoauto) 寄存器存儲類(寄存器存儲類(registerregister) 靜態存儲類(靜態存儲類(staticstatic) 外部存儲類(外部存儲類(externextern)動態變量是在函數被調用執行時動態變量是在函數被調用執行時,才分才分配單元配單元,隨著函數被執行而分配隨著函數被執行而分配,隨著隨著函數執行結束而釋放函數執行結束而釋放,auto關鍵字可關鍵字可以省略以省略寄存器變量是請求計算機把此變量放寄存器變量是請求計算機把此變量放入入CPU的寄存器內的寄存器內,但如果沒有寄存但如果沒有寄存器可使用器可使用,或系統不支持此功能或系統不支持此功能,則此則此變量等同于動態變量

24、變量等同于動態變量靜態變量是在程序編譯連接時就分靜態變量是在程序編譯連接時就分配的內存單元配的內存單元,在整個程序運行期在整個程序運行期間使用固定的存儲單元間使用固定的存儲單元,直到整個直到整個程序退出對應單元才釋放程序退出對應單元才釋放在所有函數和程序段中都可引用。在所有函數和程序段中都可引用。生存期是整個程序,在程序結束生存期是整個程序,在程序結束時才釋放內存。時才釋放內存。231.6 常量與變量常量與變量 整型變量整型變量C+C+中,不帶小數值的變量表示整型變量。中,不帶小數值的變量表示整型變量。例如:例如:#include#includevoid main()void main() i

25、nt x=020, y ; int x=020, y ; /定義定義2 2個變量,個變量,x x初始化為八進制數初始化為八進制數020020 y=0 x32 ; y=0 x32 ;/給給y y賦值為十六進制數賦值為十六進制數0 x320 x32 coutx yendl; coutx yendl; 結果為:結果為:241.6 常量與變量常量與變量 實型變量的定義:實型變量的定義:float float 變量名變量名1 1,變量名,變量名2 2,變量名,變量名n;n;doubledouble變量名變量名1 1,變量名,變量名2 2,變量名,變量名n;n; 實型變量可以賦的值實型變量可以賦的值 小數

26、形式表示:小數形式表示:0.123 .123 23. 0.00.123 .123 23. 0.0 指數形式表示指數形式表示 2.3026 2.3026 0.23026e1 0.23026e1 0.230260.23026 10101 10.0002345 0.0002345 2.345e-4 2.345e-4 2.3452.345 1010-4-4注意注意: : e(e(或或E)E)前后要有數字前后要有數字; e; e或或E E后的指數必須為整數后的指數必須為整數例如,例如,e3 .5e3. .e3 e e3 .5e3. .e3 e 不合法不合法float x=0.25,x2;float x=

27、0.25,x2;double y=2e3,w;double y=2e3,w;251.6 常量與變量常量與變量 字符變量字符變量 字符變量定義形式:字符變量定義形式: char char 變量名變量名1 1,變量名,變量名2 2,變量名,變量名n;n;例如例如: : char c1,c2; char c1,c2; c1=a; c1=a; c2=b; c2=b; 注意注意:a a的的ASCIIASCII碼值為碼值為9797,存儲,存儲形式為形式為0110000101100001;bb的的ASCIIASCII碼值為碼值為9898,存儲形式,存儲形式為為011000100110001026例:整型字符

28、變量的定義及輸出的例子例:整型字符變量的定義及輸出的例子#include#includevoid main()void main() int i; int i; /定義一個整型變量定義一個整型變量 char c; char c; /定義一個字符變量定義一個字符變量 i=a; i=a; /字符賦值給整型變量字符賦值給整型變量 c=97; c=97; /整型數賦值給字符變量整型數賦值給字符變量 couti cendl;couti cendl; c=c+1; c=c+1; /加加1 1后后c c為為9898,字符,字符bb的的ASCIIASCII碼為碼為9898 i=i+1; i=i+1; / a+

29、1/ a+1為為bb couti cendl; couti cendl; 271.6 常量與變量常量與變量變量聲明的位置變量聲明的位置在在C+C+中,變量可以在程序代碼的任何位置去定義。中,變量可以在程序代碼的任何位置去定義。例:例: 求求1+2+x-11+2+x-1#include#includevoid main( )void main( ) int x;int x;int total;int total;total=0; total=0; cinx;cinx;for(for(int i=0int i=0;ik;i+);ik;i+) total=total+i; total=total+i

30、; couttotal= totalendl;couttotal= totalendl;func(x); func(x); 281.7 運算符與表達式運算符與表達式 C+C+的運算符:的運算符: 算術運算符算術運算符 關系運算符關系運算符 邏輯運算符邏輯運算符 位運算符位運算符 運算符運算符運算符與操作數連接組成表達式。運算符與操作數連接組成表達式。單目運算符:連接一個操作數的運算符;單目運算符:連接一個操作數的運算符;雙目運算符:連接兩個操作數的運算符;雙目運算符:連接兩個操作數的運算符;三目運算符:連接三個操作數的運算符。三目運算符:連接三個操作數的運算符。291.7 運算符與表達式運算符

31、與表達式算術運算符算術運算符 算術運算符用于加、減、乘、除、取余。算術運算符用于加、減、乘、除、取余。運算符運算符含義含義例例備注備注+ +加加5+2 5+2 7 7- -減減5-2 5-2 3 3* *乘乘5 5* *2 2 10 10/ /除除5/2 5/2 2 2%取余取余5%2 5%2 1 1只適用于整型數只適用于整型數+自增自增y=x+ ; y=x+ ; y=x , x=x+1 y=x , x=x+1y=+x ; y=+x ; x=x+1 , y=x x=x+1 , y=x適用于整型變量適用于整型變量-自減自減y=x- ; y=x- ; y=x , x=x-1 y=x , x=x-1

32、y=-x ; y=-x ; x=x-1 , y=x x=x-1 , y=x適用于整型變量適用于整型變量例如例如, ,x xy yz z x=10;x=10;1010 y=x+;y=x+;11111010 z=+x;z=+x; 12121212 z=(x+)+(x+)+(x+);z=(x+)+(x+)+(x+);15153636 coutx+x+;coutx+x+;1717輸出:輸出:16151615 15 x15 x為為1616 16 x 16 x為為1717 z=x+x+x,x=x+1,x=x+1,x=x+1z=x+x+x,x=x+1,x=x+1,x=x+1301.7 運算符與表達式運算符與

33、表達式算術表達式算術表達式 算術表達式是把常量、變量、函數用算術運算符算術表達式是把常量、變量、函數用算術運算符連接起來的有意義的式子。連接起來的有意義的式子。 所謂有意義是指不能被所謂有意義是指不能被0 0除等。除等。 算術表達式有整型和浮點型兩類。算術表達式有整型和浮點型兩類。當表達式中的數據類型不一致時,編譯系統會當表達式中的數據類型不一致時,編譯系統會自動轉換自動轉換類型或使用類型或使用強制類型強制類型轉換的方法轉換的方法(后一頁舉例)(后一頁舉例)。int x=5.3;int x=5.3;cout(char)97; cout(char)97; doublefloatdoubleflo

34、at longlong intint charchar311.7 運算符與表達式運算符與表達式強制類型轉換運算符強制類型轉換運算符強制類型轉換格式是:強制類型轉換格式是:() ) 其功能是使表達式的類型強制轉換成其功能是使表達式的類型強制轉換成 說明的類型。說明的類型。例如:例如:#include #include using namespace std;using namespace std;void main() void main() int x=1, y=2, z=3, c=97;int x=1, y=2, z=3, c=97;coutcout(char)c(char)cendl;en

35、dl;/將將97 97 轉換成轉換成 aacoutcoutdoubledouble(x(x* *y y* *z)endl;z)endl;/將將6 6 轉換成轉換成 6.06.0coutsizeof(int)endl;coutsizeof(int)endl;/等價于等價于sizeof(x) sizeof(x) 轉換成轉換成 4 4coutsizeof(double)endl;coutsizeof(double)=大于等于大于等于20=20,10=2020=20,10=20同級同級( (高高) ) 大于大于2020,20102020,2010 小于小于2030,20102030,2010=小于等于

36、小于等于20=30,20=1020=30,20=10=判斷等于判斷等于20=20,20=1020=20,20=10同級同級( (低低) )!=!=不等于不等于20!=20,20!=1020!=20,20!=10算術運算符的優先級高于關系運算符算術運算符的優先級高于關系運算符331.7 運算符與表達式運算符與表達式邏輯運算符邏輯運算符 用于一個或兩個條件是否滿足的判斷用于一個或兩個條件是否滿足的判斷 參與運算的數是邏輯值參與運算的數是邏輯值( (非零或非零或0), 0), 運算的結果也是邏輯值運算的結果也是邏輯值(1(1或或0)0)運算符運算符含義含義舉例舉例優先級優先級! !邏輯非邏輯非!20

37、,!0!20,!0高高&與與20&45,20&020&45,20&0|或或20|0,0|020|0,0|0低低341.7 運算符與表達式運算符與表達式邏輯運算符邏輯運算符 “邏輯表達式的值已確定邏輯表達式的值已確定”的情況的情況 與運算與運算 int a=1,b=0,c;int a=1,b=0,c; c=a & b+; c=a & b+;/c=0,a=1,b=1/c=0,a=1,b=1 c=-a & b+; c=-a & b+;/c=0,a=0,b=0/c=0,a=0,b=0 或運算或運算c=a | b+;c=a | b+

38、;/c=1,a=1,b=0/c=1,a=1,b=0c=-a | b+;c=-a | b+;/c=0,a=0,b=1/c=0,a=0,b=1賦值運算低于關系運算賦值運算低于關系運算351.7 運算符與表達式運算符與表達式邏輯運算符邏輯運算符 邏輯運算的優先級邏輯運算的優先級! !(非)(非)&(&(與與) |() |(或或) ) 邏輯運算符與其他運算符的優先級:邏輯運算符與其他運算符的優先級:!算術運算符算術運算符關系運算符關系運算符&和和|賦值運算符賦值運算符高高低低361.7 運算符與表達式運算符與表達式賦值運算符賦值運算符 包括基本賦值運算符(包括基本賦值運算符(1

39、 1個)與復合賦值運算符個)與復合賦值運算符(1010個)個) = =:基本賦值運算符:基本賦值運算符 +=+=、-=-=、* *= =、/=/=、%=%=分別為加、減、乘、除、取余賦值運算符分別為加、減、乘、除、取余賦值運算符 &=&=、=、|=|=分別為按位與、按位異或、按位或賦值運算符分別為按位與、按位異或、按位或賦值運算符 =分別為位左移、右移賦值運算符分別為位左移、右移賦值運算符371.7 運算符與表達式運算符與表達式賦值表達式賦值表達式 賦值表達式的一般形式為:賦值表達式的一般形式為: = = 例如:例如:int a,b,c;int a,b,c;a=b=c=1;a=

40、b=c=1;該表達式值為該表達式值為1 1,變量,變量a a、b b、c c的值為的值為1 1。381.7 運算符與表達式運算符與表達式復合賦值運算符舉例復合賦值運算符舉例 復合賦值運算符由賦值號復合賦值運算符由賦值號“=”=”前加上其他運算符前加上其他運算符構成,其功能是右側表達式的值與左側變量先進構成,其功能是右側表達式的值與左側變量先進行行“=”=”前的運算符的計算,再賦給左邊的變量。前的運算符的計算,再賦給左邊的變量。例如:例如:a+=3a+=3等價于等價于a=a+3a=a+3x x* *=y+8=y+8等價于等價于x=xx=x* *(y+8)(y+8)391.7 運算符與表達式運算符

41、與表達式位運算符位運算符 位運算的對象是二進制數位運算的對象是二進制數, ,對對二進制數進行按位運算二進制數進行按位運算運算符運算符含義含義舉例舉例 按位求反按位求反1 1 0 , 1010 0 , 1010 0101 0101&按位與按位與 | |按位或按位或 按位異或按位異或按位右移按位右移int y=3;int y=3;couthexy;couthexy;ffff fffcffff fffcy: 0000 0000 0000 0000 0000 0000 0000 0011y: 0000 0000 0000 0000 0000 0000 0000 0011y: 1111 1111

42、 1111 1111 1111 1111 1111 1100y: 1111 1111 1111 1111 1111 1111 1111 11001100110010101010 1000 1000&1100110010101010 1110 1110| |1100110010101010 0110 0110 00101 00101 00101 0001 0001401.7 運算符與表達式運算符與表達式條件表達式條件表達式條件(三目)表達式由條件(三目)運算符和操作數組成,根據邏輯條件(三目)表達式由條件(三目)運算符和操作數組成,根據邏輯值決定表達式的求值。值決定表達式的求值。條件表達

43、式形式為:條件表達式形式為: ? ? : : 3例如:例如:#include #include void main()void main() int a=1, b=2, c=3;int a=1, b=2, c=3;cout(ab ? a : b)endl;cout(ab ? a : b)endl;coutb ? b- : +a)endl;coutb ? b- : +a)endl;coutb ? +a : +b)endl;coutb ? +a : +b)endl;coutb ? a : bc ? b : c)endl;coutb ? a : bc ? b : c)endl; 條件運算符優先級高于

44、賦值運算符條件運算符優先級高于賦值運算符411.7 運算符與表達式運算符與表達式逗號表達式逗號表達式 用逗號串聯起來的若干個表達式稱為逗號表達式。用逗號串聯起來的若干個表達式稱為逗號表達式。 1 , 2 , , n 各表達式按從左至右順序執行;逗號表達式的值是最后一個表達各表達式按從左至右順序執行;逗號表達式的值是最后一個表達式的值。式的值。例如:例如:#include #include void main()void main() int a=1, b=2, c=3;int a=1, b=2, c=3;cout(a=3cout(a=3* *5, a5, a* *4), a+5)endl;4), a+5)-:用于結構體、共用體變量。:用于結構體、共用體變量。(4 4)sizeofsizeof:計算一數據類型或一表達式占用內存的字節數。:計算一數據類型或一表達式占用內存的字節數。例如,例如,sizeof(int) sizeof(int) 或或 sizeof(sizeof()(5 5)強制類型:作用于一表達式,使表達式的類型強制性轉換為指)強制類型:作用于一表達式,使表達式的類型強制性轉換為指定類型。定類型。例如,例如,(int)(a+b+1.234567)(int)(a+b+1.234567)431.3 一個應用程序的開發過程一個應用程序的開發過程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論