




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第二章第二章 數(shù)據(jù)類型、運算符與表達式數(shù)據(jù)類型、運算符與表達式12.1 數(shù)據(jù)類型232.1 數(shù)據(jù)類型 程序中要對各種各樣的數(shù)據(jù)進行描述和操作,用到的數(shù)據(jù)都必須指明其類型。數(shù)據(jù)類型的作用:指出了應為數(shù)據(jù)分配的存儲空間的大小規(guī)定了數(shù)據(jù)所能進行的操作 數(shù)據(jù)類型基本類型 構造類型 整型 (int)實型 字符型(char)布爾型(bool)空類型(void) 單精度型(float)雙精度型(double) 數(shù)組指針結構型(struct)共用體(union)枚舉(enum)類(class)2.1.12.1.1計算機中存放數(shù)據(jù)形式簡介計算機中存放數(shù)據(jù)形式簡介420002000H H2001H2001H200
2、22002H H20032003H H20042004H H3 33+5=?3+5=?5 5運算器運算器(2000H)+(2002H)(2000H)+(2002H)用一個字節(jié)表示整數(shù),范圍為用一個字節(jié)表示整數(shù),范圍為-128127-128127;用兩個字節(jié)表;用兩個字節(jié)表示整數(shù),范圍為示整數(shù),范圍為-32768 32767-32768 32767。一般用四個字節(jié)表示整。一般用四個字節(jié)表示整數(shù)。數(shù)。( (舉例舉例) )內(nèi)存內(nèi)存CPUCPU內(nèi)存內(nèi)存datadata外存外存ProgramProgram8 8硬盤硬盤 軟盤軟盤51514 13 12 11 109876543210有符號數(shù)有符號數(shù)無符號
3、數(shù)無符號數(shù)0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1327673276732767327670 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0327663276632766327660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1-1( (補碼補碼) )65535655351 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0-2-265534655341 0 0 0 0 0 0 0 0
4、0 0 0 0 0 0 1-32767-3276732769327691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-32768-32768327683276862.1.22.1.2常量常量與變量與變量7常量常量與變量與變量常量:在程序運行過程中,其值一直保持不變的量常量:在程序運行過程中,其值一直保持不變的量為常量。為常量。常量也區(qū)分不同的類型:常量也區(qū)分不同的類型:3030,40 40 為整型,為整型,30.030.0,40.040.0為實型,編輯器只是根據(jù)其表面形式來判斷其為實型,編輯器只是根據(jù)其表面形式來判斷其類型。類型。變量:在程序運行過程中,其值可以改變的量為變量:
5、在程序運行過程中,其值可以改變的量為變量。變量。變量在程序的執(zhí)行中能夠賦值,發(fā)生變化變量在程序的執(zhí)行中能夠賦值,發(fā)生變化。變量。變量有一個名字,有一個名字,并在使用之前要說明其類型并在使用之前要說明其類型,一經(jīng),一經(jīng)說明,說明,就在內(nèi)存中占據(jù)與其類型相應的存儲單元。就在內(nèi)存中占據(jù)與其類型相應的存儲單元。8類比:數(shù)學表達式中的類比:數(shù)學表達式中的常量常量與變量與變量Y=3X+2Y=3X+2常量?常量?變量?變量?9例例2-12-1# #includeincludeiostream#define PRICE 30 #define PRICE 30 /常量,在程序中保持不變常量,在程序中保持不變vo
6、id main(void)void main(void) int num, total; int num, total; /定義變量定義變量, ,在內(nèi)存中開辟區(qū)在內(nèi)存中開辟區(qū)間間 num=10; num=10; /變量賦值變量賦值,10,10為常量為常量 total=numtotal=num* *PRICE;PRICE; cout cout“total=total=“total; total; /輸出結果輸出結果 其中:其中:num=10 total=numnum=10 total=num* *PRICE PRICE = =是是賦值號,不同于數(shù)學意義上的等號。賦值號,不同于數(shù)學意義上的等號。n
7、umnumtotatotal l1010300300PRICEPRICE303010C+C+中有多種數(shù)據(jù)類型,均有常量與變量之分,各中有多種數(shù)據(jù)類型,均有常量與變量之分,各占不同的內(nèi)存空間,正確定義與使用數(shù)據(jù)是編寫程占不同的內(nèi)存空間,正確定義與使用數(shù)據(jù)是編寫程序的基本前提。序的基本前提。11變量名的命名方法:變量名的命名方法:變量名、數(shù)組名、函數(shù)名變量名、數(shù)組名、函數(shù)名稱為稱為標識符標識符。標識符只能由標識符只能由字母、數(shù)字、下劃線字母、數(shù)字、下劃線這三種字符組成,且第這三種字符組成,且第一個字符必須為字母或下劃線,長度不一個字符必須為字母或下劃線,長度不大于大于( (247247) )個個字
8、符,字符,大小寫不通用大小寫不通用。(關鍵字不能作為標識符)。(關鍵字不能作為標識符)。關鍵字關鍵字即即是是C C+的語法要求中使用的字的語法要求中使用的字。如如 int if while int if while 等。等。 正確的標識符:正確的標識符:INT, sum , de12, SUMINT, sum , de12, SUM等。等。變量必變量必須使用前定義,以分配空間。須使用前定義,以分配空間。舉例說明舉例說明12abc abc English 2xy x-y if Else English 2xy x-y if Else b(3) b(3) defdef Chine Chine_bb
9、 b3y _bb b3y AbsFloat floatAbsFloat float一般變量都是用匈牙利命名法命名的。一般變量都是用匈牙利命名法命名的。int nCount; int nCount; char chChoice;char chChoice;13整型數(shù)據(jù)整型數(shù)據(jù)整型常量:整型常量:常量是根據(jù)其表面形式來判定,整型量即是沒有小數(shù)點的常量是根據(jù)其表面形式來判定,整型量即是沒有小數(shù)點的整數(shù),范圍:整數(shù),范圍:-2-23131 (2 23131-1-1) ,有三種形式,有三種形式: :1 1)十進制(默認方式)十進制(默認方式)43 1345 8765443 1345 876542 2)八
10、進制)八進制 以以0 0開頭開頭 043043, 056056, 0110113 3)十六進制)十六進制 以以0 x0 x開頭開頭 0 x12 0 xa3 0 x34 0 x12 0 xa3 0 x34 0 xdf0 xdf(舉例說明)(舉例說明)14例例2-22-2# #includeincludeiostreamvoid main(void)void main(void) int int10,int8,int16; int int10,int8,int16; /定義定義3 3個整型變量個整型變量int10=10;int10=10;/默認為十進制默認為十進制int8=010;int8=010
11、;/八進制八進制int16=0 x10;int16=0 x10;/十六進制十六進制coutint10=int10endl;coutint10=int10endl;coutint8=int8endl;coutint8=int8endl;coutint16=int16endl;coutint16=int16endl; 輸出輸出int10=10int10=10int8=8int8=8int16=16int16=1615整型變量:整型變量:分為有符號型與無符號型。分為有符號型與無符號型。有符號型:有符號型: short short 在內(nèi)存中占兩個字節(jié),范圍為在內(nèi)存中占兩個字節(jié),范圍為-2-21515
12、(2 21515-1-1) int int 在內(nèi)存中占四個字節(jié),范圍為在內(nèi)存中占四個字節(jié),范圍為-2-23131 (2 23131-1-1)longlong在內(nèi)存中在內(nèi)存中占占不不少于少于intint長度的長度的字節(jié)字節(jié)無符號型:無符號型:最高位不表示符號位最高位不表示符號位unsigned short unsigned short 在內(nèi)存中占兩個字節(jié),范圍為在內(nèi)存中占兩個字節(jié),范圍為02021616-1-1unsigned int unsigned int 在內(nèi)存中占四個字節(jié),范圍為在內(nèi)存中占四個字節(jié),范圍為02023232-1-1unsigned longunsigned long在內(nèi)存中
13、在內(nèi)存中占占不少于不少于intint長度的字節(jié)長度的字節(jié)161 1)整型常量整型常量亦有長短之分,常量中無亦有長短之分,常量中無unsignedunsigned型,但一型,但一個非負的整型常量可以賦給個非負的整型常量可以賦給unsignedunsigned型的變量。型的變量。 2 2)若一個常量定義為長整型數(shù),則在其后加)若一個常量定義為長整型數(shù),則在其后加l l或或L L進行區(qū)進行區(qū)分。分。如:如:32l 32L 564L32l 32L 564L等等,內(nèi)存,內(nèi)存為其分配四個字節(jié)存儲。為其分配四個字節(jié)存儲。 一個數(shù)在內(nèi)存中為一個數(shù)在內(nèi)存中為1 1 1 1 1 1 1 1 1 1 1 1 1 1
14、 1 1當這個數(shù)為有符號數(shù)時,是當這個數(shù)為有符號數(shù)時,是-1-1;為無符號數(shù)時,是;為無符號數(shù)時,是2 23232-1-1內(nèi)存中的數(shù)是以內(nèi)存中的數(shù)是以補碼補碼的形式存放的。(舉例說明)的形式存放的。(舉例說明)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 117例例2-32-3# #include include void main()void main() unsigned unsigned short a;short a; short int b= -1; short int b= -1; a=b; a=b; couta=aendl; couta=aendl; 結果:結果:6
15、5535 65535 不同類型的整型數(shù)據(jù)間不同類型的整型數(shù)據(jù)間的賦值歸根到底就是一的賦值歸根到底就是一條:條:按存儲單元中的存按存儲單元中的存儲形式直接傳送。儲形式直接傳送。 a a1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1b b1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1unsigned short a;unsigned short a;18實型數(shù)據(jù)實型數(shù)據(jù)實型數(shù)又稱浮點數(shù),有兩種表示方式:實型數(shù)又稱浮點數(shù),有兩種表示方式:1 1)十進制形式:)十進制形式: 23.0 24.5 3.56789 23.0 24.5 3.56789 2)2) 指數(shù)形式:指數(shù)
16、形式: 23E1 145e-1 356789e1 23E1 145e-1 356789e1 e e前有前有數(shù)字,后面必須是整數(shù)。數(shù)字,后面必須是整數(shù)。實型變量分單精度實型變量分單精度 float float 和雙精度和雙精度 double double 兩種形式:兩種形式:float:float:占四個字節(jié),提供占四個字節(jié),提供7878位有效數(shù)字。位有效數(shù)字。double: double: 占八個字節(jié),提供占八個字節(jié),提供15161516位有效數(shù)字。位有效數(shù)字。舉例說明舉例說明19例例2-42-4# #includeincludevoid main(void)void main(void) f
17、loat a, b;float a, b;double c, d;double c, d;a=0.01;a=0.01;b=3.45678e-2;b=3.45678e-2;c=3.45678e-2;c=3.45678e-2;d=9.7654e-5;d=9.7654e-5;couta=atb=bendl;couta=atb=bendl;coutc=ctd=dendl;coutc=ctd=dendl; a=0.01 b=0.0345678a=0.01 b=0.0345678c=0.0345678 d=9.7654e-c=0.0345678 d=9.7654e-00500520如果為實數(shù),則用浮點數(shù)的
18、形式在內(nèi)存存儲,表示如下:如果為實數(shù),則用浮點數(shù)的形式在內(nèi)存存儲,表示如下:JtJSfS階符階符階碼階碼數(shù)符數(shù)符尾數(shù)尾數(shù)實數(shù)是既有整數(shù)又有小數(shù)的數(shù)。實數(shù)是既有整數(shù)又有小數(shù)的數(shù)。實數(shù)可以表示成:實數(shù)可以表示成:N=N=S SR RJ JS S 稱為尾數(shù),尾數(shù)決定有效數(shù)字,即數(shù)字的精度。稱為尾數(shù),尾數(shù)決定有效數(shù)字,即數(shù)字的精度。J J 表示指數(shù)(階碼)。表示指數(shù)(階碼)。R R 是基數(shù),可取是基數(shù),可取2 2,4 4,8 8,1616等,對具體機器而言,基等,對具體機器而言,基數(shù)取好后,就不能再變了。數(shù)取好后,就不能再變了。數(shù)有正有負數(shù)有正有負, , 所以設置數(shù)符所以設置數(shù)符; ; 階碼亦有正負階
19、碼亦有正負, , 所以設置所以設置階符階符21一般用一般用4 4個字節(jié)表示一個浮點數(shù),也有用個字節(jié)表示一個浮點數(shù),也有用8 8個字個字節(jié)表示的。節(jié)表示的。字長一定,尾數(shù)越多,精度越高;階碼越多,字長一定,尾數(shù)越多,精度越高;階碼越多,范圍越大。范圍越大。當計算機中出現(xiàn)小于機器所能表示的最小數(shù)當計算機中出現(xiàn)小于機器所能表示的最小數(shù)時,機器只能當零來處理時,機器只能當零來處理,當出現(xiàn)超過機器所能當出現(xiàn)超過機器所能表示的最大數(shù)時,出現(xiàn)溢出現(xiàn)象表示的最大數(shù)時,出現(xiàn)溢出現(xiàn)象,一旦出現(xiàn)溢出,一旦出現(xiàn)溢出,就會停止運算。就會停止運算。定點數(shù),浮點數(shù)均會出現(xiàn)溢出現(xiàn)定點數(shù),浮點數(shù)均會出現(xiàn)溢出現(xiàn)象。象。22字符型
20、數(shù)據(jù)(字符型數(shù)據(jù)(char)char)字符型數(shù)據(jù)實際上是作為字符型數(shù)據(jù)實際上是作為整型數(shù)據(jù)整型數(shù)據(jù)在內(nèi)存中存儲的。在內(nèi)存中存儲的。計算機是以字符編碼的形式處理字符的,因此,我們在計算機內(nèi)部是以計算機是以字符編碼的形式處理字符的,因此,我們在計算機內(nèi)部是以ASCIIASCII碼碼的形式表的形式表示所有字符的。所以示所有字符的。所以7 7位二進制數(shù)即可表示出一個字符,位二進制數(shù)即可表示出一個字符,我們用一個字節(jié)的容量(我們用一個字節(jié)的容量(8 8位)存位)存儲一個字符。儲一個字符。例如:字符例如:字符A A的的ASCIIASCII碼為碼為0 x410 x41或或6565,在內(nèi)存中表示為:,在內(nèi)存中
21、表示為:01000001在程序中表示為:在程序中表示為:char grade ;char grade ;/定義一個字符型的變量空間定義一個字符型的變量空間(1(1個字節(jié)個字節(jié)) )grade=grade=A A; ; /必須用必須用 表示,否則易與標識符混同表示,否則易與標識符混同 內(nèi)括起來的字符表示該字符的內(nèi)括起來的字符表示該字符的ASCIIASCII碼。碼。23進一步,由于在內(nèi)存中的形式與整型數(shù)據(jù)相同,所以,進一步,由于在內(nèi)存中的形式與整型數(shù)據(jù)相同,所以,可以直接用其整型值給變量賦值??梢灾苯佑闷湔椭到o變量賦值。char grade;char grade;grade=65;grade=6
22、5;以下的賦值形式均是等同的。以下的賦值形式均是等同的。grade=A; grade=65 ; grade=0 x41; grade=0101;grade=A; grade=65 ; grade=0 x41; grade=0101;#include#includevoid main(void)void main(void) char a,b; char a,b; a= a=A A; ; /輸入輸入ASCIIASCII碼碼 b=65; b=65; /輸入十進制數(shù)輸入十進制數(shù) couta=aendl;couta=aendl; coutb=bendl; coutb=bendl; 輸出:輸出:a=Aa
23、=Ab=Ab=A即在內(nèi)存中的表示均是相同的即在內(nèi)存中的表示均是相同的0100000124非打印字符非打印字符有些有些ASCIIASCII的字符代表某些操作,不能打印出來,的字符代表某些操作,不能打印出來,如回車、退格等,可用兩種方式表示這些字符。如回車、退格等,可用兩種方式表示這些字符。1 1)用)用ASCIIASCII碼的形式碼的形式 char re=13;char re=13;2 2)用轉義字符)用轉義字符 char char re=re=nn; ;25轉義字符轉義字符含含 義義 ASCII ASCII代碼代碼aa響鈴響鈴7 7換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭1
24、010水平制表(跳到下一個水平制表(跳到下一個tabtab位置)位置)9 9退格,將當前位置移到前一列退格,將當前位置移到前一列8 8回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭1313換頁,將當前位置移到下頁開頭換頁,將當前位置移到下頁開頭1212 v v豎向跳格豎向跳格8 8 反斜杠字符反斜杠字符“”9292單引號(撇號)字符單引號(撇號)字符3939 雙引號字符雙引號字符343400空字符空字符0 0dddddd1 1到到3 3位位8 8進制數(shù)所代表的字符進制數(shù)所代表的字符 xhhxhh1 1到到2 2位位1616進制數(shù)所代表的字符進制數(shù)所代表的字符 26轉義字符雖然包含轉義
25、字符雖然包含2 2個或多個字符,但它只代個或多個字符,但它只代表一個字符。表一個字符。編譯系統(tǒng)在見到字符編譯系統(tǒng)在見到字符“ ”時,時,會接著找它后面的字符,把它處理成一個字會接著找它后面的字符,把它處理成一個字符,在內(nèi)存中只占一個字節(jié)。符,在內(nèi)存中只占一個字節(jié)。 27典型轉義字符典型轉義字符 :nn換行換行 bb 退格退格 t t 下一個輸出區(qū)下一個輸出區(qū)若輸出中包含這些特定格式,則再加一個若輸出中包含這些特定格式,則再加一個 輸出輸出 c:tctc c:tctc 表示為表示為coutc:tctc;coutc:tctc;可以用轉義字符表示任一一個可以用轉義字符表示任一一個ASCIIASCII
26、字符字符 dddddd ( (八進制)八進制) xhhxhh (十六進制)(十六進制)101 x41 x61 141 101 x41 x61 141 28#include#includevoid main(void)void main(void) char c1,c2,c3,c4; char c1,c2,c3,c4; char n1,n2; char n1,n2; c1=a; c1=a;/字符常量字符常量 c2=97;c2=97;/十進制十進制 c3=x61;c3=x61;/轉義字符轉義字符 c4=0141;c4=0141;/八進制八進制 coutc1=c1tc2=c2endl;coutc1=
27、c1tc2=c2endl; coutc3=c3tc4=c4endl; coutc3=c3tc4=c4endl; n1= n1=nn; ; /轉義字符:回車轉義字符:回車 n2=n2=tt; ; /轉義字符:下一個輸出區(qū)轉義字符:下一個輸出區(qū)(Tab)(Tab) cout cout使用轉義字符使用轉義字符n;n; coutc1=c1n2c2=c2n1; coutc1=c1n2c2=c2n1; coutc3=c3n2c4=c4n1; coutc3=c3n2c4=c4n1; 輸出:輸出:c1=a c2=a c1=a c2=a c3=a c4=ac3=a c4=a使用轉義字符使用轉義字符c1=a c2
28、=a c1=a c2=a c3=a c4=ac3=a c4=a29字符串常量:字符串常量:用用 表示,表示,在內(nèi)存中順序存放,以在內(nèi)存中順序存放,以00結束。結束。如:如:CHINA CHINA 0 x430 x480 x490 x550 x410aa在內(nèi)存中占一個字節(jié)在內(nèi)存中占一個字節(jié) aa占兩個字節(jié)占兩個字節(jié)aa0實際上實際上內(nèi)存是對應字符的內(nèi)存是對應字符的ASCIIASCII碼形式碼形式010000110100100001001001010101010100000100000000CHINA001100001011000010000000030標識符常量標識符常量在在C+C+中有二種方法
29、定義中有二種方法定義標識符常量標識符常量,一種是使用編譯預,一種是使用編譯預處理指令;另一種是使用處理指令;另一種是使用C+C+的常量說明符的常量說明符constconst。例如:例如: #define PRICE 30 #define PRICE 30 /在程序中凡是出現(xiàn)在程序中凡是出現(xiàn)PRICEPRICE均用均用3030替代替代 #define PI 3.1415926#define PI 3.1415926 #define S #define S “ChinaChina”const const float pi=3.1415926; float pi=3.1415926; /將將變量變量
30、pipi定義為定義為常量常量(舉例說明)(舉例說明)31#include#include#define PI 3.14156#define PI 3.14156#define S China#define S Chinavoid main(void)void main(void) const float pi=3.14156; const float pi=3.14156;/變量作為常量使用變量作為常量使用 coutPI=PIendl;coutPI=PIendl; cout10 cout10* *PI=10PI=10* *PIendl;PIendl; coutSendl; coutSendl;
31、/ PI=PI+3;/ PI=PI+3;/ pi=pi+4;/ pi=pi+4; coutPI=PIendl; coutPI=PIendl; coutpi=piendl; coutpi=piendl; 輸出:輸出:PI=3.14156PI=3.141561010* *PI=31.4156PI=31.4156ChinaChinaPI=3.14156PI=3.14156pi=3.14156pi=3.1415632下列常量的表示在下列常量的表示在C+C+中是否合法?若不合法,指出原因;中是否合法?若不合法,指出原因;若合法,則指出常量的數(shù)據(jù)類型。若合法,則指出常量的數(shù)據(jù)類型。32767 35u 1.
32、25e3.432767 35u 1.25e3.43L 0.0086e-3L 0.0086e-32328787“Computer SystemComputer System” “a a” a a 96459645-0-0+0+0.5.5-.567-.56733變量變量1) 1) 在程序的執(zhí)行過程中,其值可以改變的量在程序的執(zhí)行過程中,其值可以改變的量稱為變量。稱為變量。2) 2) 變量名必須用標識符來標識。變量名必須用標識符來標識。3) 3) 變量根據(jù)其取值的不同值域,分為不同類變量根據(jù)其取值的不同值域,分為不同類型的變量:整型變量、實型變量、字符型變型的變量:整型變量、實型變量、字符型變量、構
33、造型變量、指針型變量等等。量、構造型變量、指針型變量等等。344) 4) 對于任一變量,對于任一變量,編譯程序要為其分配若干編譯程序要為其分配若干個字節(jié)(連續(xù)的)的內(nèi)存單元,以便保存變個字節(jié)(連續(xù)的)的內(nèi)存單元,以便保存變量的取值量的取值。5) 5) 當要改變一個變量的值時,就是把變量的當要改變一個變量的值時,就是把變量的新的取值存放到為該變量所分配的內(nèi)存單元新的取值存放到為該變量所分配的內(nèi)存單元中;用到一個變量的值時,就是從該內(nèi)存單中;用到一個變量的值時,就是從該內(nèi)存單元中取出數(shù)據(jù)。元中取出數(shù)據(jù)。6) 6) 不管什么類型的變量,通常均是不管什么類型的變量,通常均是變量的說變量的說明在前,使用
34、變量在后。明在前,使用變量在后。35int i, j, k;int i, j, k;/定義了三個整型變量定義了三個整型變量i,j,ki,j,kfloat x,y,z;float x,y,z;/定義了三個實型變量定義了三個實型變量x,y,zx,y,zchar c1,c2; char c1,c2; /說明了二個字符型變量說明了二個字符型變量c1,c2c1,c2double dv1double dv1;/說明了一個雙精度型變量說明了一個雙精度型變量dv1dv1k k四個字節(jié)的四個字節(jié)的連續(xù)空間連續(xù)空間j j四個字節(jié)的四個字節(jié)的連續(xù)空間連續(xù)空間i i四個字節(jié)的四個字節(jié)的連續(xù)空間連續(xù)空間z z四個字節(jié)的
35、四個字節(jié)的連續(xù)空間連續(xù)空間y y四個字節(jié)的四個字節(jié)的連續(xù)空間連續(xù)空間x x四個字節(jié)的四個字節(jié)的連續(xù)空間連續(xù)空間dv1dv1八個字節(jié)的八個字節(jié)的連續(xù)空間連續(xù)空間c2c21 1個字節(jié)的個字節(jié)的空間空間c1c11 1個字節(jié)的個字節(jié)的空間空間開辟空間后開辟空間后, , 空間中為隨機空間中為隨機值值36變量賦初值變量賦初值在定義變量的在定義變量的同時同時給變量賦值,即在內(nèi)存中開辟出一個空給變量賦值,即在內(nèi)存中開辟出一個空間后馬上給此空間賦值。間后馬上給此空間賦值。但這個空間的值并不是固定不變的,但這個空間的值并不是固定不變的,在程序的運行中一樣在程序的運行中一樣可以改變??梢愿淖?。 char a=x64
36、, b=d; char a=x64, b=d; int a1=6, a2=98;int a1=6, a2=98; a= a=A A; b=; b=nn; ; a1=011; a1=011; a2=121;a2=121; int a=4; int a=4; /定義語句,在開辟空間后馬上為定義語句,在開辟空間后馬上為空間賦值空間賦值 a=6; a=6; /重新為該空間賦值重新為該空間賦值a a4 4 6 6372.2 2.2 算術運算算術運算符和算術表達式符和算術表達式382.2.1 2.2.1 算術運算算術運算符和符和算術表達式算術表達式的形式的形式+ + * * % % 用算術運算符連接起來的
37、式子是算術表達式用算術運算符連接起來的式子是算術表達式兩個整數(shù)相除結果為整數(shù)兩個整數(shù)相除結果為整數(shù) 1/2=0 1/2=0 5/2=25/2=2整數(shù)才可求余,余數(shù)的符號與左邊數(shù)的符號相同。整數(shù)才可求余,余數(shù)的符號與左邊數(shù)的符號相同。3%2=1 -3%2=-1 3%-2=1 -3%-2=-1 3%2=1 -3%2=-1 3%-2=1 -3%-2=-1 8%4=08%4=0392.2 2.2 算術運算算術運算符和算術表達式符和算術表達式2.2 2.2 算術運算算術運算符和算術表達式符和算術表達式2.2.2 2.2.2 優(yōu)先級優(yōu)先級和和結合方式結合方式()() * * / %/ % + + 402.
38、2.32.2.3強制強制轉換類型轉換類型(類型名)(表達式)(類型名)(表達式)(double) a (int) (x+y) double) a (int) (x+y) (int) 6.2%4=2(int) 6.2%4=2在強制類型運算后原變量不變,但得到一個所需類在強制類型運算后原變量不變,但得到一個所需類型的中間變量。型的中間變量。如:如:int x;int x; float float y=5.8;y=5.8; x=(int)y; x=(int)y;x=5x=5y=5.8y=5.8y y的值沒有改變,的值沒有改變,仍是單精度浮點型仍是單精度浮點型412.2.42.2.4自自增、自減運算符
39、增、自減運算符 ( (難點)難點) + + i i6 6i i3 37 7 int i, int i, j;j; i=3; i=3; j = +i; j = +i;i=4 j=4 i=4 j=4 +在前在前, , 先運算先運算, ,后賦后賦值值 int i, int i, j;j; i=3; i=3; j = i+; j = i+;i=4 j=3 i=4 j=3 +在后在后, , 先賦值先賦值, ,后運后運算算j j4 44 4i i3 3j j3 34 4i=6; i=6; i+;i+; i=i+1 i=7 i=i+1 i=7 +i;+i; i=i+1 i=7 i=i+1 i=7 i=6;
40、i=6; i i; ; i=i i=i1 i=5 1 i=5 i i ; i=i ; i=i1 i=51 i=5i i6 6 7 7421 1)自增、自減運算符只能用于變量,不可用于常量和表自增、自減運算符只能用于變量,不可用于常量和表達式達式因為表達式在內(nèi)存內(nèi)沒有具體空間,常量所占的空間不能因為表達式在內(nèi)存內(nèi)沒有具體空間,常量所占的空間不能重新賦值重新賦值3+ 3+ (x+y)+ (x+y)+ (i)+i)+若若i=3, j=2 (i+) +j i=3, j=2 (i+) +j 等于等于5 5i=4, j=2i=4, j=22 2)結合方式自右至左,優(yōu)先級最高,向右取最大)結合方式自右至左,
41、優(yōu)先級最高,向右取最大i+ i+ (i+(i+) i+j) i+j (i+) +j(i+) +j432.2.52.2.5賦值賦值運算符和賦值表達式運算符和賦值表達式bmw=2002bmw=2002=左邊左邊必須是變量名。必須是變量名。若若“ = = ” 兩邊變量類型不同,在賦值時要兩邊變量類型不同,在賦值時要進行進行類型轉換類型轉換。轉換原則:根據(jù)左邊變量的類型轉換。轉換原則:根據(jù)左邊變量的類型轉換。44少字節(jié)少字節(jié)多字節(jié)多字節(jié)1 1)若多字節(jié)變量為)若多字節(jié)變量為unsigned ,unsigned ,則轉換后多余字節(jié)則轉換后多余字節(jié)補零。補零。0 0 0 0 0 0 0 0 1 1 1 1
42、 1 1 1 11 1 1 1 1 1 1 1unsignedunsignedshort int a=-1;short int a=-1;unsignedunsigned long long b;b;b=a;b=a;a ab b451 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1有符號型,符號擴展有符號型,符號擴展short int a=-1;short int a=-1;long b;long b;b=a;b=a;2 2)若多字節(jié)變量為有符號型,則轉換后擴展少字)若多字節(jié)變量為有符號型,則轉換后擴展少字節(jié)的最高位。節(jié)的最高位。轉換后,數(shù)據(jù)的符號不變
43、。轉換后,數(shù)據(jù)的符號不變。a ab b46多字節(jié)多字節(jié)少字節(jié)少字節(jié)低位照搬低位照搬1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1int a=-1;int a=-1;short int b;short int b;b=a;b=a;b=-1b=-1int a=65535;int a=65535;short int b;short int b;b=a;b=a;b=-1b=-1b ba a1 1 1 1 1 1 1 147賦值表達式賦值表達式a=b=5 a=b=5 ; b=5 b=5 a=5a=5=的結合性為的結合性為自右至左自右至左復合的賦值運算符復合的賦值運算符a+=3 a+=3
44、a=a+3a=a+3 x x* *=y+3 =y+3 x=xx=x* *(y+3)(y+3)x/=x-4 x/=x-4 x=x/(x-4) x=x/(x-4) x+=y x+=y x=x+yx=x+yi+=j- i+=j- i=i+(j-)i=i+(j-)48a=12; a=12; a+a+= =a-=aa-=a* *a;a;12a a a=a-(a a=a-(a * * a) =12-(12 a) =12-(12* *12)=-12)=-132132 a=a+(-132)=-132-132 a=a+(-132)=-132-132= = - -264264-132-264492.2.62.2.
45、6關系關系運算符和關系表達式運算符和關系表達式關系運算符(比較運算)關系運算符(比較運算) = = = = != = !=1.1. = = = = 與與 = = a=5; a=5; 賦值運算賦值運算 a= =5a= =5;判斷;判斷是否相等是否相等2.2. = = 的優(yōu)先級大于的優(yōu)先級大于= = != = !=3. 3. 算術運算符的優(yōu)先級大于關系運算符的優(yōu)先級算術運算符的優(yōu)先級大于關系運算符的優(yōu)先級50關系表達式:用關系運算符將表達式連接起來稱為關系表達式:用關系運算符將表達式連接起來稱為關系表達式。其值非真即假。在關系表達式。其值非真即假。在C+C+語言中,用非語言中,用非0 0代表真,用
46、代表真,用0 0表示假。表示假。關系表達式的結果只有兩個,關系表達式的結果只有兩個,真為真為1 1,假為,假為0 0。 a=2 b=3 a=2 b=3 c=4c=4a2 a2 ab+c ab+c a= =2 a= =2 a= =aa= =aaa aa b=a= =2b=a= =2aA aA b= =a+1b= =a+1c-a= =ac-a= =a0 00 01 10 00 01 11 10 01 151 2.2.72.2.7邏輯運算邏輯運算符符 1.1.運算符運算符 與與& 或或 | 非非! A A B B 結結果果0 00 00 00 01 10 01 10 00 01 11 11 1有有0 0出出0 0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心委托經(jīng)營管理協(xié)議
- 二零二五年度醫(yī)院員工招聘與管理服務合同
- 二零二五年度人工智能聯(lián)營投資合同模板
- 二零二五年度果園承包與農(nóng)業(yè)金融服務合作協(xié)議
- 2025年度沿街房屋租賃合同(含房屋維護及保養(yǎng)責任)
- 二零二五年度金融行業(yè)競業(yè)禁止協(xié)議補償金計算細則
- 二零二五年度精裝修房屋租賃協(xié)議書
- 二零二五年度主合同與從合同在新能源汽車產(chǎn)業(yè)鏈中的協(xié)同發(fā)展及風險共擔協(xié)議
- 二零二五年度文化產(chǎn)業(yè)股權投資合同協(xié)議
- 2025年度苗木種植與生態(tài)農(nóng)業(yè)開發(fā)協(xié)議
- 產(chǎn)品品質檢驗流程標準規(guī)范模板()
- DB12-595-2015醫(yī)院安全防范系統(tǒng)技術規(guī)范
- 五年級下冊英語課件-Unit 2 My favourite season B Let's learn 人教PEP版(共15張PPT)
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報告
- 高邊坡施工危險源辨識及分析
- 水廠項目基于BIM技術全生命周期解決方案-城市智慧水務講座課件
- 幼兒園繪本:《閃閃的紅星》 紅色故事
- 三年級學而思奧數(shù)講義.doc
- 劉姥姥進大觀園課本劇劇本3篇
- 產(chǎn)品承認書客(精)
- 投標人基本情況一覽表格
評論
0/150
提交評論