![程序設計基礎運算符和表達式課件_第1頁](http://file4.renrendoc.com/view/b075b2d06ceca884de25ccde25c36cc9/b075b2d06ceca884de25ccde25c36cc91.gif)
![程序設計基礎運算符和表達式課件_第2頁](http://file4.renrendoc.com/view/b075b2d06ceca884de25ccde25c36cc9/b075b2d06ceca884de25ccde25c36cc92.gif)
![程序設計基礎運算符和表達式課件_第3頁](http://file4.renrendoc.com/view/b075b2d06ceca884de25ccde25c36cc9/b075b2d06ceca884de25ccde25c36cc93.gif)
![程序設計基礎運算符和表達式課件_第4頁](http://file4.renrendoc.com/view/b075b2d06ceca884de25ccde25c36cc9/b075b2d06ceca884de25ccde25c36cc94.gif)
![程序設計基礎運算符和表達式課件_第5頁](http://file4.renrendoc.com/view/b075b2d06ceca884de25ccde25c36cc9/b075b2d06ceca884de25ccde25c36cc95.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機及程序設計概述運算符與表達式計算機及程序設計概述運算符與表達式運算符C語言用于描述對數據進行運算的特殊符號C語言具有豐富而繁多的運算符由運算符構成了各種表達式分類C語言的運算符按其在表達式中與運算對象的關系單目運算一個運算符連接一個運算對象雙目運算一個運算符連接兩個運算對象三目運算一個運算符連接三個運算對象
2運算符C語言用于描述對數據進行運算的特殊符號2運算符分類算術(自增/自減)運算符:(+,—,*,/,%、++、--)關系運算符:(>,<,>=,<=,!=,==)邏輯運算符:(!,&&,||)位運算符:(<<、>>、~、|、^、&)賦值運算符:(=)條件運算符:(?:)逗號運算符:(,)指針運算符:(*,&)強制類型轉換運算符:(type)分量運算符:(.和)下標運算符:([])函數調用運算符:(())3運算符分類3運算符對運算符的掌握應從三個方面著手和操作符相關的數據類型(包括操作數和操作結果的數據類型)運算符的優(yōu)先級運算符的結合次序4運算符對運算符的掌握應從三個方面著手4表達式用運算符將運算對象連接而成的符合C語言規(guī)則的算式特別地:一個常量、一個變量、一個函數都可以看成是一個表達式表達式的分類按照運算符與運算對象的關系單目表達式雙目表達式三目表達式5表達式用運算符將運算對象連接而成的符合C語言規(guī)則的算式5表達式表達式的分類按照運算符在表達式中的作用算術表達式,例:3+4*5賦值表達式,例:a=3關系表達式,例:5<6,a>b邏輯表達式,例:3>5&&a>=b條件表達式,例:a>b?a:b逗號表達式,例:a=3,b=4,c=5指針表達式,例:p-2,&a6表達式表達式的分類6表達式的求值過程C語言規(guī)定了運算符的優(yōu)先級和結合性優(yōu)先級指同一個表達式中不同運算符進行計算時的先后次序結合性結合性是指同一個表達式中相同優(yōu)先級的多個運算應遵循的運算順序C語言規(guī)定:單目運算符是自右向左結合,雙目運算符是自左向右結合7表達式的求值過程C語言規(guī)定了運算符的優(yōu)先級和結合性7表達式的求值過程表達式的求值過程按C規(guī)定的原則求值表達式代表了一個具體的值實際上是一個數據加工的過程在表達式求值時,先按運算符的優(yōu)先級級別的高低次序執(zhí)行如果運算符兩側的優(yōu)先級級別相同,則按規(guī)定的“結合方向”處理提示運算符的優(yōu)先級制約著表達式的計算次序可以通過括號()來改變表達式求值的順序表達式求值過程中存在某種類型數據的類型轉換8表達式的求值過程表達式的求值過程按C規(guī)定的原則求值8算術表達式由算術運算符連接數值型運算對象構成其結果可以是整數、單精度實數和雙精度實數例:inta=2;floatb=4.5;表達式2*a+b的結果為8.5優(yōu)先給與結合性提示兩個整數相除其結果仍為整數(即舍去小數部分)例如:13/10的結果為1“%”為求余運算符,參與運算的兩個數均為整數例如:10%3=1-10%3=-1除以0在計算機系統(tǒng)中是沒有意義的用括號可以改變表達式的運算順序9算術表達式由算術運算符連接數值型運算對象構成9算術表達式算術表達式例1:設intb=7;floata=2.5,c=4.7;表達式a+(int)(b/3*(int)(a+c)/2)%4的值?例2:10算術表達式算術表達式10自增/自減“++”與“--”的作用是使變量的值增1或減1C語言提供兩種形式的++/--運算符++a,--a(前綴運算:先進行增量運算后使用)a++,a--(后綴運算:先使用后進行增量運算)提示:增和自減只能作用于變量,不允許對常量、表達式或其它進行操作當自增/自減變量值本身就單獨構成一條語句時,前綴和后綴的效果是一樣的對于“++”和“--”的使用要避免二義性11自增/自減“++”與“--”的作用是使變量的值增1或減111自增/自減計算過程例1:設x=5y=++x;/*先計算x=x+1,再執(zhí)行y=x,結果x=5,y=6*/y=x++;/*先執(zhí)行y=x,再計算x=x+1,結果y=5,x=6*/問題:如何理解A+++B?C規(guī)定:自左向右取盡可能多的符號組成運算符12自增/自減計算過程12自增/自減例2:設x=5y=x++*x++;/*先取x的值進行“*”運算,再進行兩次x++。y=25,x=7*/y=++x*++x;/*先進行兩次x自增1,使x的值為7,再進行相乘運算。y=49,x=7*/13自增/自減例2:設x=513賦值表達式由賦值運算符“=”連接表達式(右側)和變量(左側)形式:變量名=表達式賦值運算符完成兩類操作計算賦值例inta=2,floatb=5.2,c;c=a*b;賦值運算符具有右結合性例如:a=b=3*5;/*先計算3*5,后將15賦給b,再將b的值15賦給a*/14賦值表達式由賦值運算符“=”連接表達式(右側)和變量(左側)賦值表達式組合賦值表達式組合賦值運算符將一個變量和一個表達式連接起來的式子稱為組合賦值表達式形式:變量名<組合賦值運算符>表達式例:x%=y/3;/*x=x%(y/3)*/
a*=b+c/*a=a*(b+c)*/注意:“a*=b+c”與“a=a*b+c”是不等價的提示“=”不是數學中的“等號”,它表示一個動作,右側的值送與左側的變量中(左側只允許是變量,不能是表達式或其他)賦值運算符兩側的類型要求一致,否則要進行類型轉換賦值運算符‘=’,相等運算符‘==’,和一般習慣有所不同15賦值表達式組合賦值表達式15關系表達式關系運算符中的“關系”二字的含義是指一個值與另一個值之間的關系關系由關系運算符(>,<,>=,<=,!=,==)連接表達式構成形式:<表達式>OP<表達式>表達式可以是常量、變量和表達式結果為整型值0:邏輯假1:邏輯真優(yōu)先級:(>,<,>=,<=)高于(!=,==)結合方向:自左向右16關系表達式關系運算符中的“關系”二字的含義是指一個值與另一個關系表達式例:inta=2;floatb=3.4;a>b、a+b>b,a>b>b的結果分別是多少?(0、1、0)提示進行關系運算時,先計算表達式的值,然后再進行關系比較運算例如:inta=1,b=2,c=3;(1)a+b>3*c的結果為0/*3>9關系不成立*(2)(a+=b)<(b*=11%c)結果值為1/*3<4關系成立*/17關系表達式例:inta=2;floatb=3.4;關系表達式在表達式中連續(xù)使用關系運算符時,要注意正確表達含義例如:設x的取值范圍為“-10≤x≤10”時,不能寫成“-10<=x<=10”,應寫成“-10<=x&&x<=10"——為什么?18關系表達式在表達式中連續(xù)使用關系運算符時,要注意正確表達含義邏輯表達式“邏輯”是指連接關系的方式由邏輯運算符(&&、||、!)連接的表達式構成形式:<表達式>OP<表達式>表達式可以是常量、變量、或其他表達式其結果為整數值0(邏輯假)或1(邏輯真)優(yōu)先級“!”最高,“&&”次之,“||”最低邏輯運算優(yōu)先級低于所有關系運算“!”優(yōu)先級高于所有算術運算(單目運算)結合性&&、||自左向右例如:a<b&&b<d!自右向左(例如:!a)19邏輯表達式“邏輯”是指連接關系的方式19邏輯表達式邏輯運算規(guī)則
提示設計邏輯“與”運算,將最可能為“假”的表達式放在最左側設計邏輯“或”運算,將最可能為“真”的表達式放在最左側ab!aa&&ba||b001000非0101非00001非0非001120邏輯表達式邏輯運算規(guī)則ab邏輯表達式例題:設inta=3,b=1,x=2,y=0;則(y||b)&&(y||a)的運算結果為1。問題:(1)y||b&&y||a的運算結果是多少?(2)兩個表達式在運算次序是否一致?21邏輯表達式例題:設inta=3,b=1,x=2,y=0條件表達式由條件運算符連接它的三個運算對象構成的表達式稱之為條件表達式形式:<表達式1>?<表達式2>:<表達式3>條件運算符的“?”個“:”總是成對出現表達式可以是任何類型,結果也可以是任何類型運算過程計算表達式1的值為真,計算表達式2的值,并將表達式2的值作為整個條件表達式的結果,不再計算表達式3的值為假,計算表達式3的值,并將表達式3的值作為整個條件表達式的結果,不計算表達式2的值22條件表達式由條件運算符連接它的三個運算對象構成的表達式稱之為條件表達式優(yōu)先級高于賦值運算,但低于所有關系運算、邏輯運算和算術運算結合性自右向左結合提示當多個條件表達式嵌套使用時,每個后續(xù)的“:”總與前面最近的、沒有配對的“?”相聯系例如:x>y?x:z>w?z:w等同于x>y?x:(z>w?z:w)
三個運算對象的類型可以不相同例如:x?’a’:0.523條件表達式優(yōu)先級23條件表達式例題:設intx=10,y=9;inta,b,c;a=(--x==y++)?x:--y;b=x++;c=y;執(zhí)行上述程序段后a,b,c的結果是?分別為8,8,1024條件表達式例題:設intx=10,y=9;分別為8,逗號表達式由逗號連接符(,)與表達式構成形式:<表達式1>,<表達式2>,····<表達式n><表達式1>,<表達式2>,····<表達式n>可以是任何類型逗號表達式的結果為最后一個表達式的結果值執(zhí)行過程先求解表達式1的值,再求解表達式2的值,…最后求解表達式n的值,并將表達式n的值作為整個表達式的結果值25逗號表達式由逗號連接符(,)與表達式構成25逗號表達式優(yōu)先級級別最低(最后進行逗號運算)結合方向自左向右例題設intx,a;表達式x=(a=4,6*2)的x值?表達式x=a=4,6*2的x值?x為12x為426逗號表達式優(yōu)先級x為12x為426運算符與表達式混合運算指在一個表達式中參與運算的對象不是相同的數據類型例如:設:inta=3;floatb=3.0;charc=‘3’;則表達式(a*c+b)/4+(int)b%2的結果?進行混合運算的首要的問題是對參與運算的數據進行類型轉換類型轉換由一種數據類型到另一種數據類型的轉換被稱為類型轉換27運算符與表達式混合運算27“隱式的”自動類型轉換如果同一個表達式中含有不同類型的常量和變量,C語言則在計算該表達式時會自動轉換為同一種數據類型以便進行運算轉換原則運算中將所有char型數據轉換成int型,float型轉換成double型“類型提升”:低類型向高類型轉換例如:1.5+2*‘a’-1.2345678/*運算次序為:2*‘a’:先將‘a’轉換成整型數97,得乘積1941.5+194:1.5和194都轉換成double型,和為95.5195.5-1.2345678:1.2345678本身應是double型的,所以最后結果也為double型*/28“隱式的”自動類型轉換如果同一個表達式中含有不同類型的常量和intchar,shortunsignedlongdoublefloat低高“類型提升”示意圖“隱式的”自動類型轉換29intchar,shortunsignedlongdoubl“隱式的”自動類型轉換在數據輸出時發(fā)生的類型轉換同樣要遵守“類型提升”的原則賦值運算中最終結果的類型,以賦值運算符左邊變量的類型為準要將賦值符號右邊表達式的值按左邊變量的數據類型轉換之后再賦值當左邊變量的類型長度較右邊值的長度短時,就可能產生誤差,甚至完全錯誤提示由C語言的編譯系統(tǒng)自動完成不會體現在C語言源程序中程序設計人員必須了解這種自動轉換的規(guī)則及其結果30“隱式的”自動類型轉換在數據輸出時發(fā)生的類型轉換30“顯式的”類型轉換“顯式的”類型轉換通過用強制類型轉換運算符(type)進行數據類型轉換其含義是將右邊表達式的值轉換成括號中指定的數據類型轉換形式如下:(type)表達式type表示一個強制數據類型名表達式是任何一種類型的表達式例(int)(x+y)/*注意與(int)x+y不同*/31“顯式的”類型轉換“顯式的”類型轉換31簡單表達式的運算【例1】執(zhí)行下面程序段后,inta=1,b=1,c=1;a=a+++b+++c++;printf(“%d,%d,%d”,a,++b,c++);輸出結果為:A.4,3,2;B.3,3,2;C.3,3,3;D.3,2,2;【例2】若定義x,y為double型,則表達式x=1,y=x+3/2的值是?2.0【例3】若變量已經定義并賦值,下面符合C語言語法的表達式是:A)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b【例4】若a為int類型,且值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是多少?A)-3B)9C)-12D)632簡單表達式的運算【例1】執(zhí)行下面程序段后,【例2】若定義x【例5】分析下列運算的結果。
#defineprintt(x,y,z)printf("x=%d,y=%d,z=%d\n",x,y,z)main()
{intx,y,z;
x=y=z=2;
++x||++y&&++z;printt(x,y,z);
x=y=z=2;
++x&&++y||++z;printt(x,y,z);x=y=z=2;
++x&&++y&&++z;printt(x,y,z);x=y=z=-2;
++x||++y&&++z;
printt(x,y,z);x=y=z=-2;
++x&&++y||++z;
printt(x,y,z);}/*定義宏替換*//*輸出:x=3,y=2,z=2*//*++x&&++y后不為0,不再執(zhí)行||后的++z輸出結果:x=3,y=3,z=2*/?333?-1-1-2/*輸出:x=-1,y=-2,z=-2*/33【例5】分析下列運算的結果。
#defineprint位運算位運算二進制&(按位與運算符)3&5|(按位或運算符)3|5^(按位異或運算符)3^5~(按位取反運算符)~534位運算位運算34位運算位移運算左移運算右移運算位運算的作用讀取標志加密35位運算位移運算35其他語言中的表達式基本與C類似或略少增加了部分支持對象的新運算操作36其他語言中的表達式基本與C類似或略少36例題和習題攝氏度與華氏度之間的轉換37例題和習題攝氏度與華氏度之間的轉換37此課件下載可自行編輯修改,供參考!感謝您的支持,我們努力做得更好!精選課件ppt此課件下載可自行編輯修改,供參考!精選課件ppt計算機及程序設計概述運算符與表達式計算機及程序設計概述運算符與表達式運算符C語言用于描述對數據進行運算的特殊符號C語言具有豐富而繁多的運算符由運算符構成了各種表達式分類C語言的運算符按其在表達式中與運算對象的關系單目運算一個運算符連接一個運算對象雙目運算一個運算符連接兩個運算對象三目運算一個運算符連接三個運算對象
40運算符C語言用于描述對數據進行運算的特殊符號2運算符分類算術(自增/自減)運算符:(+,—,*,/,%、++、--)關系運算符:(>,<,>=,<=,!=,==)邏輯運算符:(!,&&,||)位運算符:(<<、>>、~、|、^、&)賦值運算符:(=)條件運算符:(?:)逗號運算符:(,)指針運算符:(*,&)強制類型轉換運算符:(type)分量運算符:(.和)下標運算符:([])函數調用運算符:(())41運算符分類3運算符對運算符的掌握應從三個方面著手和操作符相關的數據類型(包括操作數和操作結果的數據類型)運算符的優(yōu)先級運算符的結合次序42運算符對運算符的掌握應從三個方面著手4表達式用運算符將運算對象連接而成的符合C語言規(guī)則的算式特別地:一個常量、一個變量、一個函數都可以看成是一個表達式表達式的分類按照運算符與運算對象的關系單目表達式雙目表達式三目表達式43表達式用運算符將運算對象連接而成的符合C語言規(guī)則的算式5表達式表達式的分類按照運算符在表達式中的作用算術表達式,例:3+4*5賦值表達式,例:a=3關系表達式,例:5<6,a>b邏輯表達式,例:3>5&&a>=b條件表達式,例:a>b?a:b逗號表達式,例:a=3,b=4,c=5指針表達式,例:p-2,&a44表達式表達式的分類6表達式的求值過程C語言規(guī)定了運算符的優(yōu)先級和結合性優(yōu)先級指同一個表達式中不同運算符進行計算時的先后次序結合性結合性是指同一個表達式中相同優(yōu)先級的多個運算應遵循的運算順序C語言規(guī)定:單目運算符是自右向左結合,雙目運算符是自左向右結合45表達式的求值過程C語言規(guī)定了運算符的優(yōu)先級和結合性7表達式的求值過程表達式的求值過程按C規(guī)定的原則求值表達式代表了一個具體的值實際上是一個數據加工的過程在表達式求值時,先按運算符的優(yōu)先級級別的高低次序執(zhí)行如果運算符兩側的優(yōu)先級級別相同,則按規(guī)定的“結合方向”處理提示運算符的優(yōu)先級制約著表達式的計算次序可以通過括號()來改變表達式求值的順序表達式求值過程中存在某種類型數據的類型轉換46表達式的求值過程表達式的求值過程按C規(guī)定的原則求值8算術表達式由算術運算符連接數值型運算對象構成其結果可以是整數、單精度實數和雙精度實數例:inta=2;floatb=4.5;表達式2*a+b的結果為8.5優(yōu)先給與結合性提示兩個整數相除其結果仍為整數(即舍去小數部分)例如:13/10的結果為1“%”為求余運算符,參與運算的兩個數均為整數例如:10%3=1-10%3=-1除以0在計算機系統(tǒng)中是沒有意義的用括號可以改變表達式的運算順序47算術表達式由算術運算符連接數值型運算對象構成9算術表達式算術表達式例1:設intb=7;floata=2.5,c=4.7;表達式a+(int)(b/3*(int)(a+c)/2)%4的值?例2:48算術表達式算術表達式10自增/自減“++”與“--”的作用是使變量的值增1或減1C語言提供兩種形式的++/--運算符++a,--a(前綴運算:先進行增量運算后使用)a++,a--(后綴運算:先使用后進行增量運算)提示:增和自減只能作用于變量,不允許對常量、表達式或其它進行操作當自增/自減變量值本身就單獨構成一條語句時,前綴和后綴的效果是一樣的對于“++”和“--”的使用要避免二義性49自增/自減“++”與“--”的作用是使變量的值增1或減111自增/自減計算過程例1:設x=5y=++x;/*先計算x=x+1,再執(zhí)行y=x,結果x=5,y=6*/y=x++;/*先執(zhí)行y=x,再計算x=x+1,結果y=5,x=6*/問題:如何理解A+++B?C規(guī)定:自左向右取盡可能多的符號組成運算符50自增/自減計算過程12自增/自減例2:設x=5y=x++*x++;/*先取x的值進行“*”運算,再進行兩次x++。y=25,x=7*/y=++x*++x;/*先進行兩次x自增1,使x的值為7,再進行相乘運算。y=49,x=7*/51自增/自減例2:設x=513賦值表達式由賦值運算符“=”連接表達式(右側)和變量(左側)形式:變量名=表達式賦值運算符完成兩類操作計算賦值例inta=2,floatb=5.2,c;c=a*b;賦值運算符具有右結合性例如:a=b=3*5;/*先計算3*5,后將15賦給b,再將b的值15賦給a*/52賦值表達式由賦值運算符“=”連接表達式(右側)和變量(左側)賦值表達式組合賦值表達式組合賦值運算符將一個變量和一個表達式連接起來的式子稱為組合賦值表達式形式:變量名<組合賦值運算符>表達式例:x%=y/3;/*x=x%(y/3)*/
a*=b+c/*a=a*(b+c)*/注意:“a*=b+c”與“a=a*b+c”是不等價的提示“=”不是數學中的“等號”,它表示一個動作,右側的值送與左側的變量中(左側只允許是變量,不能是表達式或其他)賦值運算符兩側的類型要求一致,否則要進行類型轉換賦值運算符‘=’,相等運算符‘==’,和一般習慣有所不同53賦值表達式組合賦值表達式15關系表達式關系運算符中的“關系”二字的含義是指一個值與另一個值之間的關系關系由關系運算符(>,<,>=,<=,!=,==)連接表達式構成形式:<表達式>OP<表達式>表達式可以是常量、變量和表達式結果為整型值0:邏輯假1:邏輯真優(yōu)先級:(>,<,>=,<=)高于(!=,==)結合方向:自左向右54關系表達式關系運算符中的“關系”二字的含義是指一個值與另一個關系表達式例:inta=2;floatb=3.4;a>b、a+b>b,a>b>b的結果分別是多少?(0、1、0)提示進行關系運算時,先計算表達式的值,然后再進行關系比較運算例如:inta=1,b=2,c=3;(1)a+b>3*c的結果為0/*3>9關系不成立*(2)(a+=b)<(b*=11%c)結果值為1/*3<4關系成立*/55關系表達式例:inta=2;floatb=3.4;關系表達式在表達式中連續(xù)使用關系運算符時,要注意正確表達含義例如:設x的取值范圍為“-10≤x≤10”時,不能寫成“-10<=x<=10”,應寫成“-10<=x&&x<=10"——為什么?56關系表達式在表達式中連續(xù)使用關系運算符時,要注意正確表達含義邏輯表達式“邏輯”是指連接關系的方式由邏輯運算符(&&、||、!)連接的表達式構成形式:<表達式>OP<表達式>表達式可以是常量、變量、或其他表達式其結果為整數值0(邏輯假)或1(邏輯真)優(yōu)先級“!”最高,“&&”次之,“||”最低邏輯運算優(yōu)先級低于所有關系運算“!”優(yōu)先級高于所有算術運算(單目運算)結合性&&、||自左向右例如:a<b&&b<d!自右向左(例如:!a)57邏輯表達式“邏輯”是指連接關系的方式19邏輯表達式邏輯運算規(guī)則
提示設計邏輯“與”運算,將最可能為“假”的表達式放在最左側設計邏輯“或”運算,將最可能為“真”的表達式放在最左側ab!aa&&ba||b001000非0101非00001非0非001158邏輯表達式邏輯運算規(guī)則ab邏輯表達式例題:設inta=3,b=1,x=2,y=0;則(y||b)&&(y||a)的運算結果為1。問題:(1)y||b&&y||a的運算結果是多少?(2)兩個表達式在運算次序是否一致?59邏輯表達式例題:設inta=3,b=1,x=2,y=0條件表達式由條件運算符連接它的三個運算對象構成的表達式稱之為條件表達式形式:<表達式1>?<表達式2>:<表達式3>條件運算符的“?”個“:”總是成對出現表達式可以是任何類型,結果也可以是任何類型運算過程計算表達式1的值為真,計算表達式2的值,并將表達式2的值作為整個條件表達式的結果,不再計算表達式3的值為假,計算表達式3的值,并將表達式3的值作為整個條件表達式的結果,不計算表達式2的值60條件表達式由條件運算符連接它的三個運算對象構成的表達式稱之為條件表達式優(yōu)先級高于賦值運算,但低于所有關系運算、邏輯運算和算術運算結合性自右向左結合提示當多個條件表達式嵌套使用時,每個后續(xù)的“:”總與前面最近的、沒有配對的“?”相聯系例如:x>y?x:z>w?z:w等同于x>y?x:(z>w?z:w)
三個運算對象的類型可以不相同例如:x?’a’:0.561條件表達式優(yōu)先級23條件表達式例題:設intx=10,y=9;inta,b,c;a=(--x==y++)?x:--y;b=x++;c=y;執(zhí)行上述程序段后a,b,c的結果是?分別為8,8,1062條件表達式例題:設intx=10,y=9;分別為8,逗號表達式由逗號連接符(,)與表達式構成形式:<表達式1>,<表達式2>,····<表達式n><表達式1>,<表達式2>,····<表達式n>可以是任何類型逗號表達式的結果為最后一個表達式的結果值執(zhí)行過程先求解表達式1的值,再求解表達式2的值,…最后求解表達式n的值,并將表達式n的值作為整個表達式的結果值63逗號表達式由逗號連接符(,)與表達式構成25逗號表達式優(yōu)先級級別最低(最后進行逗號運算)結合方向自左向右例題設intx,a;表達式x=(a=4,6*2)的x值?表達式x=a=4,6*2的x值?x為12x為464逗號表達式優(yōu)先級x為12x為426運算符與表達式混合運算指在一個表達式中參與運算的對象不是相同的數據類型例如:設:inta=3;floatb=3.0;charc=‘3’;則表達式(a*c+b)/4+(int)b%2的結果?進行混合運算的首要的問題是對參與運算的數據進行類型轉換類型轉換由一種數據類型到另一種數據類型的轉換被稱為類型轉換65運算符與表達式混合運算27“隱式的”自動類型轉換如果同一個表達式中含有不同類型的常量和變量,C語言則在計算該表達式時會自動轉換為同一種數據類型以便進行運算轉換原則運算中將所有char型數據轉換成int型,float型轉換成double型“類型提升”:低類型向高類型轉換例如:1.5+2*‘a’-1.2345678/*運算次序為:2*‘a’:先將‘a’轉換成整型數97,得乘積1941.5+194:1.5和194都轉換成double型,和為95.5195.5-1.2345678:1.2345678本身應是double型的,所以最后結果也為double型*/66“隱式的”自動類型轉換如果同一個表達式中含有不同類型的常量和intchar,shortunsignedlongdoublefloat低高“類型提升”示意圖“隱式的”自動類型轉換67intchar,shortunsignedlongdoubl“隱式的”自動類型轉換在數據輸出時發(fā)生的類型轉換同樣要遵守“類型提升”的原則賦值運算中最終結果的類型,以賦值運算符左邊變量的類型為準要將賦值符號右邊表達式的值按左邊變量的數據類型轉換之后再賦值當左邊變量的類型長度較右邊值的長度短時,就可能產生誤差,甚至完全錯誤提示由C語言的編譯系統(tǒng)自動完成不會體現在C語言源程序中程序設計人員必須了解這種自動轉換的規(guī)則及其結果68“隱式的”自動類型轉換在數據輸出時發(fā)生的類型轉換30“顯式的”類型轉換“顯式的”類型轉換通過用強制類型轉換運算符(type)進行數據類型轉換其含義是將右邊表達式的值轉換成括號中指定的數據類型轉換形式如下:(type)表達式type表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理裝修設計合同范本
- vr全景制作合同范本
- 光熱分包合同范本
- 運動休閑服裝項目可行性研究報告
- 2025年度建設工程交易服務中心建筑拆除工程合同
- 分期貨款合同范例
- 勞務及銷售合同范本
- 乙方包工合同范例
- 2025年度野生菌類采集與保護利用合同
- 保護乙方施工合同范例
- 七年級英語閱讀理解55篇(含答案)
- 職位管理手冊
- IPQC首檢巡檢操作培訓
- 餐飲空間設計課件ppt
- 肉制品加工技術完整版ppt課件全套教程(最新)
- (中職)Dreamweaver-CC網頁設計與制作(3版)電子課件(完整版)
- 新部編版四年級下冊小學語文全冊課件PPT
- 行政人事助理崗位月度KPI績效考核表
- 主動脈夾層的護理-ppt課件
- 紀檢監(jiān)察機關派駐機構工作規(guī)則全文詳解PPT
- BP-2C 微機母線保護裝置技術說明書 (3)
評論
0/150
提交評論