數(shù)據(jù)類型運算符與表達式1ppt課件_第1頁
數(shù)據(jù)類型運算符與表達式1ppt課件_第2頁
數(shù)據(jù)類型運算符與表達式1ppt課件_第3頁
數(shù)據(jù)類型運算符與表達式1ppt課件_第4頁
數(shù)據(jù)類型運算符與表達式1ppt課件_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C C程序設計程序設計第三章第三章 數(shù)據(jù)類型、運算符與表達式數(shù)據(jù)類型、運算符與表達式l 本章要點本章要點C C程序設計程序設計3.1 C3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型3.2 3.2 常量與變量常量與變量3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)3.4 3.4 浮點型數(shù)據(jù)運轉浮點型數(shù)據(jù)運轉3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù)3.3.變量賦初值變量賦初值 第三章第三章 數(shù)據(jù)類型、運算符與表達式數(shù)據(jù)類型、運算符與表達式3.7 3.7 各類數(shù)值型數(shù)據(jù)間各類數(shù)值型數(shù)據(jù)間的混合運算的混合運算 3.8 3.8 算術運算符和算術算術運算符和算術表達式表達式 3.9 3.9 賦值運算符和賦值賦值運算符和賦值表達式表達式

2、3.10 3.10 逗號運算符和逗號逗號運算符和逗號表達式表達式C C程序設計程序設計 3.1 C 3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型C言語提供了以下一些數(shù)據(jù)類型。 C C程序設計程序設計 3.2 常量與變量3.2.1 常量和符號常量在程序運轉過程中,其值不能被改動的量稱為常量常量區(qū)分為不同的類型:整型整型 100 100,125125,-100-100,0 0實型實型 3.14 3.14 , 0.125 0.125,-3.789-3.789字符型字符型 a a, , b b,2 2字符串字符串 a a, , abab,12321232C C程序設計程序設計例3.1 符號常量的運用#define

3、PRICE 30#include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); 運轉結果:運轉結果: total=300 total=300 3.2 常量與變量C C程序設計程序設計3.2.2變量變量 3.2 3.2 常量與變量常量與變量變量代表內存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),變量代表內存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),這就是變量的值,在程序運轉期間,這些值是可以改動的。這就是變量的值,在程序運轉期間,這些值是可以改動的。變量名實踐上是一個以一個

4、名字對應代表一個地址,在對程序編變量名實踐上是一個以一個名字對應代表一個地址,在對程序編譯銜接時由編譯系統(tǒng)給每一個變量名分配對應的內存地址。從變譯銜接時由編譯系統(tǒng)給每一個變量名分配對應的內存地址。從變量中取值,實踐上是經過變量名找到相應的內存地址,從該存儲量中取值,實踐上是經過變量名找到相應的內存地址,從該存儲單元中讀取數(shù)據(jù)。單元中讀取數(shù)據(jù)。C C程序設計程序設計 變量命名的規(guī)定:言語規(guī)定標識符只能由字母、數(shù)變量命名的規(guī)定:言語規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必需為字母字和下劃線三種字符組成,且第一個字符必需為字母或下劃線?;蛳聞澗€。 3.2 3.2 常量與變量常量

5、與變量例:例:sumsum,_total, month, Student_name_total, month, Student_name, lotus_1_2_lotus_1_2_,BASIC, li_ling BASIC, li_ling M.D.John, M.D.John, ¥123,3D64,ab123,3D64,abC C程序設計程序設計 3.2 3.2 常量與變量常量與變量留意:留意:編譯系統(tǒng)將大寫字母和小寫字母以為是兩個不同的字符。編譯系統(tǒng)將大寫字母和小寫字母以為是兩個不同的字符。 建議變量名的長度最好不要超越建議變量名的長度最好不要超越8 8個字符。個字符。在選擇變量名和其它標

6、識符時,應留意做到在選擇變量名和其它標識符時,應留意做到“見名知意見名知意,即選有含意的英文單詞即選有含意的英文單詞 或其縮寫作標識符?;蚱淇s寫作標識符。要求對一切用到的變量作強迫定義,也就是要求對一切用到的變量作強迫定義,也就是“先定義,后運用先定義,后運用C C程序設計程序設計 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)3.3.1整型常量的表示方法整型常量的表示方法 整型常量即整型常量即整常數(shù)。在整常數(shù)。在言語中,言語中,整常數(shù)整常數(shù)可用以下三可用以下三種方式表示:種方式表示:(1)十進制整數(shù)。十進制整數(shù)。 如:如:123, -456.4。(2)八進制整數(shù)。以八進制整數(shù)。以0頭的數(shù)是八進制數(shù)。頭的數(shù)

7、是八進制數(shù)。 如:如:0123表示八進制數(shù)表示八進制數(shù)123,等于十進,等于十進制數(shù)制數(shù)83,-011表示八進制數(shù)表示八進制數(shù)-11,即十進制數(shù)即十進制數(shù)-9。(3)十六進制整數(shù)。以十六進制整數(shù)。以0 x開頭的數(shù)是開頭的數(shù)是16進進制數(shù)。制數(shù)。 如:如:0 x123,代表,代表16進制數(shù)進制數(shù)123,等于十等于十進制數(shù)進制數(shù) 291。 -0 x12等于十進制數(shù)等于十進制數(shù)10。C C程序設計程序設計3.3.2 3.3.2 整型變量整型變量 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)留意:留意:十進制數(shù)十進制數(shù)1010的二進制方式為的二進制方式為10101010,Turbo C 2.0Turbo C 2.

8、0和和Turbo C+ 3.0Turbo C+ 3.0為一個整型變量在內存中分配為一個整型變量在內存中分配2 2個字個字節(jié)的存儲單元節(jié)的存儲單元( (不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不一樣的,節(jié)數(shù)是不一樣的,VC+ 6.0VC+ 6.0那么分配那么分配4 4個字節(jié)。個字節(jié)。數(shù)值是以補碼數(shù)值是以補碼(complement) (complement) 表示的。表示的。C C程序設計程序設計(2)(2)整型變量的分類整型變量的分類共六種共六種有符號根本整型有符號短整型有符號長整型無符號根本整型無符號短整型無符號長整型(signed)int (signed)sho

9、rt (int )(signed) long (int)unsigned intunsigned short (int)unsigned long (int) 留意:括號表示其中的內容是可選的. 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計 整數(shù)類型的有關數(shù)據(jù):整數(shù)類型的有關數(shù)據(jù): 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計例如:整數(shù)例如:整數(shù)1313在內存中實踐存放的情況:在內存中實踐存放的情況: 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計(3)整型變量的定義: 規(guī)定在程序中一切用到的變量都必需在程序中定義,即“強迫類型定義。 3.3 3.3 整型數(shù)據(jù)整型數(shù)

10、據(jù)例如例如: : int a,b int a,b指定變量、為整型指定變量、為整型 unsigned short c,d; unsigned short c,d;指定變量、指定變量、為無符號短整型為無符號短整型 long e,f;( long e,f;(指定變量、為長整型指定變量、為長整型C C程序設計程序設計例3.2 整型變量的定義與運用#include void main int a,b,c,d; /*指定、為整型變量* unsigned ; *指定為無符號整型變量* 12;-24;10; ; printf,; 運轉結果:運轉結果: , 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計

11、例3.3 整型數(shù)據(jù)的溢出#include void main()int a,b; a=32767; b=a+1; printf(“%d,%dn,a,b);運轉結果:運轉結果: 32767,-32768 32767,-32768 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計3.3.3 整型常量的類型整型常量的類型 (1) (1)一個整數(shù),假設其值在一個整數(shù),假設其值在-32768-32768+32767+32767范圍內,以為它是范圍內,以為它是intint型,它可以賦值給型,它可以賦值給intint型和型和long intlong int型變量。型變量。 (2) (2) 一個整數(shù),假

12、設其值超越了上述范圍,而在一個整數(shù),假設其值超越了上述范圍,而在- -21474836372147483637+2147483647+2147483647范圍內,那么以為它是為長整型??煞秶鷥?,那么以為它是為長整型??梢詫⑺x值給一個以將它賦值給一個long intlong int型變量。型變量。 (3) (3) 假設所用的假設所用的C C版本如版本如Turbo CTurbo C分配給分配給short intshort int與與intint型型數(shù)據(jù)在內存中占據(jù)的長度一樣,那么它的表數(shù)范圍與數(shù)據(jù)在內存中占據(jù)的長度一樣,那么它的表數(shù)范圍與intint型一樣。型一樣。因此一個因此一個intint型

13、的常量同時也是一個型的常量同時也是一個short intshort int型常量,可以賦型常量,可以賦給給intint型或型或short intshort int型變量。型變量。 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計3.3.3 整型常量的類型整型常量的類型(4) (4) 一個整常量后面加一個字母一個整常量后面加一個字母u u或或U U,以為是,以為是unsigned intunsigned int型,型,如如12345u12345u,在內存中按,在內存中按unsigned intunsigned int規(guī)定的方式存放規(guī)定的方式存放( (存儲單元中存儲單元中最高位不作為符號位,

14、而用來存儲數(shù)據(jù)最高位不作為符號位,而用來存儲數(shù)據(jù)) )。假設寫成。假設寫成-12345u-12345u,那,那么先將么先將-12345-12345轉換成其補碼轉換成其補碼5319153191,然后按無符號數(shù)存儲。,然后按無符號數(shù)存儲。(5) (5) 在一個整常量后面加一個字母在一個整常量后面加一個字母l l或或L L,那么以為是,那么以為是long intlong int型型常量。常量。 例如:例如: 123l.432L.0L123l.432L.0L 用于函數(shù)調用中。用于函數(shù)調用中。假設函數(shù)的形參為假設函數(shù)的形參為long intlong int型,那么要務虛參也為型,那么要務虛參也為long

15、 intlong int型。型。 3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)C C程序設計程序設計 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)3.4.13.4.1浮點型常量的表示方法浮點型常量的表示方法兩種表兩種表示方式示方式小數(shù)小數(shù)指數(shù)指數(shù)0.1230.1233e-33e-3留意留意: :字母字母e(e(或或E)E)之前必需有數(shù)字,且之前必需有數(shù)字,且e e后面的指數(shù)必需為整數(shù)后面的指數(shù)必需為整數(shù) C C程序設計程序設計 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)規(guī)范化的指數(shù)方規(guī)范化的指數(shù)方式:式: 在字母在字母e e或或E E之前的小數(shù)之前的小數(shù)部分中,小數(shù)點部分中,小數(shù)點左邊左邊應有一位且只應有一位且只能有一

16、位非零能有一位非零的數(shù)字的數(shù)字. .例如例如: 123.456: 123.456可以表示為:可以表示為:123.456e0, 12.3456e1, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e0.0123456e4, 0.00123456e 其中的其中的1.23456e31.23456e3稱為稱為“規(guī)范規(guī)范化的指數(shù)方式?;闹笖?shù)方式。C C程序設計程序設計3.4.2 浮點型變量浮點型變量 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)(1)(1)浮點型數(shù)據(jù)在內存中的

17、存放方式浮點型數(shù)據(jù)在內存中的存放方式 一個浮點型數(shù)據(jù)普通在內存中占一個浮點型數(shù)據(jù)普通在內存中占4 4個字節(jié)個字節(jié)(32(32位位) )。與整型數(shù)據(jù)的。與整型數(shù)據(jù)的存儲方式不同,浮點型數(shù)據(jù)是按照指數(shù)方式存儲的。系統(tǒng)把一個存儲方式不同,浮點型數(shù)據(jù)是按照指數(shù)方式存儲的。系統(tǒng)把一個浮點型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用浮點型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)方式。規(guī)范化的指數(shù)方式。C C程序設計程序設計 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)(2) (2) 浮點型變量的分類浮點型變量的分類 浮點型變量分為單精度浮點型變量分為單精度floatfloat型、雙精

18、度型、雙精度doubledouble型和長雙精度型型和長雙精度型long doublelong double三類方式。三類方式。C C程序設計程序設計例例3.4 浮點型數(shù)據(jù)的舍入誤差浮點型數(shù)據(jù)的舍入誤差#include void main()float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn,b); 運轉結果:運轉結果: 123456.789e5123456.789e5 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)C C程序設計程序設計3.4.3 浮點型常量的類型浮點型常量的類型 3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù) 例如:例如:f = 2.45

19、678 f = 2.45678 * * 4523.65 4523.65 系統(tǒng)先把系統(tǒng)先把2.456782.45678和和4523.654523.65作為雙精度數(shù),然后進作為雙精度數(shù),然后進展相乘的運算,得到的乘也是一個雙精度數(shù)。最后取其展相乘的運算,得到的乘也是一個雙精度數(shù)。最后取其前前7 7位賦給浮點型變量位賦給浮點型變量f f。如是在數(shù)的后面加字母。如是在數(shù)的后面加字母f f或或F F如如1.65f, 654.87F1.65f, 654.87F,這樣編譯系統(tǒng)就會把它們按單,這樣編譯系統(tǒng)就會把它們按單精度精度3232位處置。位處置。 C C編譯系統(tǒng)將浮點型常量作為雙精度來處置。編譯系統(tǒng)將浮點

20、型常量作為雙精度來處置。C C程序設計程序設計 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3.5.1 3.5.1 字符常量字符常量a a, ,A A, , 1 1abcabc、“a a(1)(1)用單引號包含的一個字符是字符型常量用單引號包含的一個字符是字符型常量(2)(2)只能包含一個字符只能包含一個字符C C程序設計程序設計 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 本義字符本義字符n n 換行換行t t 橫向跳格橫向跳格r r 回車回車 反斜杠反斜杠ddd dddddd ddd表示表示1 1到到3 3位八進制數(shù)字位八進制數(shù)字xhh hhxhh hh表示表示1 1到到2 2位十六進制數(shù)字位十六進制

21、數(shù)字C C程序設計程序設計例3.5 本義字符的運用#include void main()ptintf( ab ct derftgn); printf(htibbj kn);打印機上的顯示結果:打印機上的顯示結果: fab c gde fab c gde h jik h jik顯示屏上的運轉結果:顯示屏上的運轉結果: f gde f gde j k j k 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) C C程序設計程序設計3.5.23.5.2字符變量字符變量 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 字符型變量用來存放字符常量,留意只能放一個字符。字符型變量用來存放字符常量,留意只能放一個字符。字符變量

22、的定義方式如下:字符變量的定義方式如下:char c1,c2;char c1,c2;在本函數(shù)中可以用下面語句對在本函數(shù)中可以用下面語句對c1,c2c1,c2賦值:賦值: c1 c1a a;c2c2 b b ;一個字符變量在內存中占一個字節(jié)。一個字符變量在內存中占一個字節(jié)。C C程序設計程序設計3.5.3 3.5.3 字符數(shù)據(jù)在內存中的存儲方式及其運用方法字符數(shù)據(jù)在內存中的存儲方式及其運用方法留意留意: : 一個字符數(shù)據(jù)一個字符數(shù)據(jù)既可以以字符既可以以字符方式輸出,也方式輸出,也可以以整數(shù)方可以以整數(shù)方式輸出。式輸出。 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 一個字符常量存放到一個字符變量中,實踐

23、一個字符常量存放到一個字符變量中,實踐上并不是把該字符的字型放到內存中去,而上并不是把該字符的字型放到內存中去,而是將該字符的相應的是將該字符的相應的ASCIIASCII代碼放到存儲單元代碼放到存儲單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。通用。C C程序設計程序設計例例3.6 3.6 向字符變量賦以整數(shù)。向字符變量賦以整數(shù)。 #include #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf( printf(“%c %

24、cn%c %cn,c1,c2);,c1,c2); printf( printf(“%d %dn%d %dn,c1,c2);,c1,c2); 運轉結果:運轉結果: 97 98 97 98 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) C C程序設計程序設計例3.7 大小寫字母的轉換 #include void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“c c,c1,c2; 運轉結果:運轉結果: 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) C C程序設計程序設計3.5.43.5.4字符串常量字符串常量 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)

25、據(jù) 字符串常量是一對雙撇號括起來的字符序列字符串常量是一對雙撇號括起來的字符序列. .合法的字符串常量合法的字符串常量: :“How do you do.How do you do., , “CHINACHINA, “a a , “$123.45$123.45可以輸出一個字符串,如可以輸出一個字符串,如printf(printf(“How do you do.How do you do.) ); 是字符是字符常量,常量,是字符串是字符串常量,二者常量,二者不不同。同。如:假設被指定為字符變量如:假設被指定為字符變量 :char cchar c c= c=a a; ;a a;c cCHINACH

26、INA; ; 結論:不能把一個字符串常量賦給一個字結論:不能把一個字符串常量賦給一個字符變量。符變量。 C C程序設計程序設計 如:假設有一個字符串常量如:假設有一個字符串常量CHINACHINA, ,實踐上在內存中是:實踐上在內存中是:CHINA0 它占內存單元不是個字符,而是個字符,最后一個它占內存單元不是個字符,而是個字符,最后一個字符為字符為。但在輸出時不輸出。但在輸出時不輸出。 3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 規(guī)定規(guī)定在每一個字符串常量的結尾加一個在每一個字符串常量的結尾加一個 “字符字符串終了標志,以便系統(tǒng)據(jù)此判別字符串能否終了。串終了標志,以便系統(tǒng)據(jù)此判別字符串能否終了。規(guī)

27、定以字符規(guī)定以字符作為字符串終了標志。作為字符串終了標志。C C程序設計程序設計 3.6 3.6 變量賦初值變量賦初值 字符串常量字符串常量(1)(1)言語允許在定義變量的同時使變量初始化言語允許在定義變量的同時使變量初始化如如: int a=3; / : int a=3; / 指定為整型變量,初值為指定為整型變量,初值為 float f=3.56; / float f=3.56; / 指定為浮點型變量,初值為指定為浮點型變量,初值為.56 .56 char c= char c= a a; / ; / 指定為字符變量,初值為指定為字符變量,初值為a a(2)(2)可以使被定義的變量的一部分賦初

28、值??梢允贡欢x的變量的一部分賦初值。 如如: int a,b,c=5: int a,b,c=5; 表示指定、為整型變量,表示指定、為整型變量, 但只對初始化,但只對初始化,c c的初值為的初值為(3)(3)假設對幾個變量賦以同一個初值,假設對幾個變量賦以同一個初值,應寫成:應寫成:int a=3,b=3,c=3; int a=3,b=3,c=3; 表示、的初值都是。表示、的初值都是。 不能寫成不能寫成 int a=b=c3; int a=b=c3;C C程序設計程序設計 3.7 3.7 各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算 闡明:闡明: 這種類型轉換是由系這種類型轉換是由系統(tǒng)

29、自動進展的。統(tǒng)自動進展的?;旌线\算:整型包括混合運算:整型包括int,short,longint,short,long、浮點型包、浮點型包括括float,doublefloat,double可以混合運算。在進展運算時,不同可以混合運算。在進展運算時,不同類型的數(shù)據(jù)要先轉換成同一類型類型的數(shù)據(jù)要先轉換成同一類型, ,然后進展運算然后進展運算. .C C程序設計程序設計 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式3.8.1 3.8.1 運算符簡介運算符簡介 的運算符有以下幾類:(1)(1)算術運算符算術運算符 + - + - * * / % / %(2)(2)關系運算符關系運算符

30、! !(3)(3)邏輯運算符邏輯運算符 !|(4)(4)位運算符位運算符 | |(5)(5)賦值運算符賦值運算符 及擴展運算符及擴展運算符(6)(6)條件運算符條件運算符 ?:?:(7)(7)逗號運算符逗號運算符 ( (,(8)(8)指針運算符指針運算符 * *和和(9)(9)求字節(jié)數(shù)運算符求字節(jié)數(shù)運算符(10)(10)強迫類型轉換運算符強迫類型轉換運算符( (類型類型) )(11)(11)分量運算符分量運算符-(12)(12)下標運算符下標運算符(13)(13)其他如函數(shù)調用運算符其他如函數(shù)調用運算符C C程序設計程序設計3.8.2 3.8.2 算術運算符和算術表達式算術運算符和算術表達式

31、3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式(1)(1)根本的算術運算符根本的算術運算符: : 加法運算符,或正值運算符。如加法運算符,或正值運算符。如: :、 減法運算符,或負值運算符。如減法運算符,或負值運算符。如: :、* * 乘法運算符。如乘法運算符。如: :* * 除法運算符。如除法運算符。如: : 模運算符,或稱求余運算符,兩側均應為整型數(shù)據(jù),模運算符,或稱求余運算符,兩側均應為整型數(shù)據(jù),如如: :的值為。的值為。C C程序設計程序設計3.8.2 3.8.2 算術運算符和算術表達式算術運算符和算術表達式 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式(

32、2) (2) 算術表達式和運算符的優(yōu)先級與結合性根本的算術運算符算術表達式和運算符的優(yōu)先級與結合性根本的算術運算符: : 用算術運算符和括號將運算對象(也稱操作數(shù)銜接起來的、符合語法規(guī)那么的式子,稱為算術表達式。運算對象包括常量、變量、函數(shù)等。 例如: *.5a 是一個合法的表達式C C程序設計程序設計 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式(3)(3)強迫類型轉換運算符強迫類型轉換運算符 可以利用強迫類型轉換運算符將一個表達式轉換成所需類可以利用強迫類型轉換運算符將一個表達式轉換成所需類型。型。 普通方式普通方式: :類型名表達式類型名表達式例如:例如:(double)

33、(double) 將轉換成將轉換成doubledouble類型類型(int)(x+y) (int)(x+y) 將將x+yx+y的值轉換成整型的值轉換成整型(float)(float)5%35%3 將將5%35%3的值轉換成的值轉換成floatfloat型型C C程序設計程序設計例3.8 強迫類型轉換。 #include void ; ; ; ; printf(x=%f, i=%dn,x,i); 運轉結果:運轉結果: x x3.6000003.600000, i=3 i=3 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式C C程序設計程序設計(4) (4) 自增、自減運算符自增、自

34、減運算符 作用是使變量的值增或減如:作用是使變量的值增或減如: ,在運用之前,先使的值加減,在運用之前,先使的值加減,在運用之后,使的值加減,在運用之后,使的值加減 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式i+i+與與+i+i的區(qū)別:的區(qū)別: 是先執(zhí)行后,再運用的值;是先執(zhí)行后,再運用的值; 是先運用的值后,再執(zhí)行。是先運用的值后,再執(zhí)行。例如:例如: ; i i的值先變成的值先變成4, 4, 再賦給再賦給,j,j的值均為的值均為 ; 先將先將 i i的值的值3 3賦給賦給, ,的值為,然后變?yōu)榈闹禐?,然后變?yōu)镃 C程序設計程序設計 3.8 3.8 算術運算符和算術表達式算

35、術運算符和算術表達式(5) (5) 有關表達式運用中的問題闡明有關表達式運用中的問題闡明ANSI CANSI C并沒有詳細規(guī)定表達式中的子表達式并沒有詳細規(guī)定表達式中的子表達式的求值順序,允許各編譯系統(tǒng)本人安排。的求值順序,允許各編譯系統(tǒng)本人安排。言語中有的運算符為一個字符,有的運算言語中有的運算符為一個字符,有的運算符由兩個字符組成符由兩個字符組成 ,為防止誤解,最好采取大,為防止誤解,最好采取大家都能了解的寫法。家都能了解的寫法。在調用函數(shù)時,實參數(shù)的求值順序,規(guī)范在調用函數(shù)時,實參數(shù)的求值順序,規(guī)范并無一致規(guī)定。并無一致規(guī)定。C C程序設計程序設計1 1賦值運算符賦值運算符2 2類型轉換

36、類型轉換賦值符號賦值符號“就是賦值就是賦值運算符,它的作用是將運算符,它的作用是將一個數(shù)據(jù)賦給一個變量。一個數(shù)據(jù)賦給一個變量。如如“的作用是執(zhí)的作用是執(zhí)行一次賦值操作或稱行一次賦值操作或稱賦值運算。把常量賦值運算。把常量賦給變量。也可以將賦給變量。也可以將一個表達式的值賦給一一個表達式的值賦給一個變量個變量. . 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式C C程序設計程序設計1 1賦值運算符賦值運算符2 2類型轉換類型轉換將浮點型數(shù)據(jù)包括單、雙精將浮點型數(shù)據(jù)包括單、雙精度賦給整型變量時,舍棄浮點度賦給整型變量

37、時,舍棄浮點數(shù)的小數(shù)部分。數(shù)的小數(shù)部分。將整型數(shù)據(jù)賦給單、雙精度變將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點數(shù)方量時,數(shù)值不變,但以浮點數(shù)方式存儲到變量中式存儲到變量中將一個將一個double型數(shù)據(jù)賦給型數(shù)據(jù)賦給float變量時,截取其前變量時,截取其前面面7位有效數(shù)字,存放到位有效數(shù)字,存放到float變量變量的存儲單元的存儲單元4個個字節(jié)中。但應留意數(shù)值范圍不字節(jié)中。但應留意數(shù)值范圍不能溢出。能溢出。 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式C C程序設計程序設計1 1賦值運算符賦值運算符2 2類

38、型轉換類型轉換字符型數(shù)據(jù)賦給整型變量時,字符型數(shù)據(jù)賦給整型變量時,由于字符只占由于字符只占1個字節(jié),而整型變個字節(jié),而整型變量為個字節(jié),因此將字符數(shù)據(jù)量為個字節(jié),因此將字符數(shù)據(jù)個二進位放到整型變量存?zhèn)€二進位放到整型變量存儲單元的低位中。儲單元的低位中。將一個將一個int、short、long型數(shù)據(jù)型數(shù)據(jù)賦給一個賦給一個char型變型變量時,只將其低量時,只將其低8位原封不動地送位原封不動地送到到char型變量即型變量即截斷。截斷。 將帶符號的整型數(shù)據(jù)將帶符號的整型數(shù)據(jù)int型賦型賦給給long型變量時,要進展符號擴型變量時,要進展符號擴展,將整型數(shù)的展,將整型數(shù)的16位送到位送到long型型低

39、低16位中位中: 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式C C程序設計程序設計1 1賦值運算符賦值運算符2 2類型轉換類型轉換3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式將將unsigned intunsigned int型數(shù)據(jù)賦給型數(shù)據(jù)賦給long long intint型變量時,不存在符號擴展問型變量時,不存在符號擴展問題,只需將高位補即可。將一個題,只需將高位補即可。將一個unsignedunsigned類型數(shù)據(jù)賦給一個占字節(jié)類型數(shù)據(jù)賦給一個占字節(jié)數(shù)一樣的非數(shù)一樣的非unsigne

40、dunsigned型整型變量,型整型變量,將將unsignedunsigned型變量的內容原樣送到型變量的內容原樣送到非非unsignedunsigned型變量中,但假設數(shù)據(jù)范型變量中,但假設數(shù)據(jù)范圍超越相應整型的范圍,那么會出圍超越相應整型的范圍,那么會出現(xiàn)數(shù)據(jù)錯誤?,F(xiàn)數(shù)據(jù)錯誤。 將非將非unsignedunsigned型數(shù)據(jù)賦給長度型數(shù)據(jù)賦給長度一樣的一樣的unsignedunsigned型變量,也是原樣型變量,也是原樣照賦符號位也作為數(shù)值一同傳照賦符號位也作為數(shù)值一同傳送。送。 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 C C程序設計程序設計例3.9 有符號數(shù)據(jù)傳送給

41、無符號變量。 #include void main unsigned ; int ; ; printn,; 運轉結果:運轉結果: 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 C C程序設計程序設計1 1賦值運算符賦值運算符2 2類型轉換類型轉換3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式在賦值符在賦值符“之前加上其之前加上其他運算符,可以構成復合的他運算符,可以構成復合的運算符。運算符。例如例如: :A+=3 A+=3 等價于等價于 a=a+3 a=a+3* *y+8 y+8 等價于等價于x=xx=x* *(y+8)(y+8)x%=x%= 等價于等價于 x

42、 xx%3x%3以以“為例來闡明,為例來闡明,它相當于使進展一次自加它相當于使進展一次自加的操作。即先使加的操作。即先使加,再賦給。,再賦給。 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 C C程序設計程序設計1 1賦值運算符賦值運算符2 2類型轉換類型轉換3 3復合的賦值運算符復合的賦值運算符4 4賦值表達式賦值表達式由賦值運算符將一個變量和由賦值運算符將一個變量和一個表達式銜接一個表達式銜接起來的式子稱為起來的式子稱為“賦值表達賦值表達式。式。普通方式為普通方式為: : 例如例如: : “5 5是一個賦是一個賦值表達式值表達式 3.9 3.9 賦值運算符和賦值表達式賦值運

43、算符和賦值表達式 C C程序設計程序設計對賦值表達式求解的過程是:對賦值表達式求解的過程是: 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 求賦值運算符右側的求賦值運算符右側的“表達式的值表達式的值; ;賦給賦值運算符左側的變量。賦給賦值運算符左側的變量。例如例如: : 賦值表達式賦值表達式“=3=3* *5 5的值為的值為1515,執(zhí)行表達式后,變量,執(zhí)行表達式后,變量a a的值也是的值也是1515。 左值左值 (lvalue) : (lvalue) : 賦值運算符左側的標識符賦值運算符左側的標識符變量可以作為左值變量可以作為左值; ;而表達式就不能作為左值而表達式就不能作為左值( (如如a+b);a+b);常變量也不能作為左值,常變量也不能作為左值,右值右值 (lvalue) : (lvalue) :出如今賦值運算符右側的表達式出如今賦值運算符右側的表達式左值也可以出如今賦值運算符右側,因此左值都可以作為右值。左值也可以出如今賦值運算符右側,因此左值都可以作為右值。C C程序設計

溫馨提示

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

評論

0/150

提交評論