版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)類型運算符與表達式1第一頁,共五十一頁,編輯于2023年,星期三本章目標:C語言的基本符號C語言的數(shù)據(jù)類型運算符和表達式數(shù)據(jù)類型轉換自增,自減運算2第二頁,共五十一頁,編輯于2023年,星期三C語言的基本符號C語言的基本詞匯表有下列幾部分:數(shù)字:10個(0~9)。英文字母:大、小寫各26個(A~Z,a~z)。下劃線字符“_”(用來構成標識符)。運算符:是指為表達程序基本操作使用的一些符號;關鍵字:是指為表達程序功能使用的一些英文單詞或單詞縮寫。3第三頁,共五十一頁,編輯于2023年,星期三標識符定義:
程序中用來為符號常量、變量、函數(shù)、數(shù)組、類型、文件命名的有效字符序列稱為標識符。命名規(guī)則:1只能由字母、數(shù)字和下劃線組成。2第一個字符必須為字母或下劃線。3不能使用關鍵字。4區(qū)分大小寫字符。5
ANSIC沒有規(guī)定標識符的長度,各個編譯系統(tǒng)允許的標識符的長度(字符個數(shù))不同。4第四頁,共五十一頁,編輯于2023年,星期三常量定義:常量又稱為常數(shù),是在程序運行過程中其值不能被改變的量,常量的類型是由本身隱含決定的。舉例:25、0、-13為整型常量;
-55.23、0.57、3.8e3為實型常量;
‘B’,‘9’為字符型常量。符號常量:
在C語言中,經常使用一個標識符來代表一個常量。也就是給常量命名,稱為符號常量。
5第五頁,共五十一頁,編輯于2023年,星期三[例]閱讀程序。#definePI3.1415926/*宏定義*/#include<stdio.h>voidmain(){ floatr=18.5,area,length;area=PI*r*r;length=2*PI*r; printf("area=%6.2f,length=%6.2f",area,length);}符號常量幾點說明:程序中用宏定義的方法定義標識符PI代表常量;符號常量名一般用大寫字符;符號常量的值在有效范圍內不能改變,也不能再被賦值;使用符號常量可以做到“含義清楚”、“一改全改”,從而提高程序的可讀性,方便程序的修改。6第六頁,共五十一頁,編輯于2023年,星期三變量
1.變量的基本概念定義:在程序運行過程中其值可以改變的量稱為變量。變量具有三個屬性:變量名:選擇一個標識符,給變量取一個名字稱為變量名,變量名的命名規(guī)則與標識符完全相同。變量值:
是對應變量名的存儲單元所存放的具體的數(shù)值。變量的數(shù)據(jù)類型:是指變量可以存儲的數(shù)據(jù)的類型,也就是變量值的數(shù)據(jù)類型。7第七頁,共五十一頁,編輯于2023年,星期三
2.變量的定義變量的定義:
程序中指定變量的名字和數(shù)據(jù)類型變量的定義在一個函數(shù)開頭的聲明部分變量定義的一般形式:類型說明符變量名1,變量名2,…
,變量名n;舉例:intk,m,n;/*定義三個整型變量*/floatx,y,z;/*定義三個實型變量*/
charstr;/*定義一個字符型變量*/8第八頁,共五十一頁,編輯于2023年,星期三3.變量的初始化定義變量的同時,還可以為變量指定初值,稱為變量的初始化。例如程序段:floaty=0.5;charstr='a';又如:intj=0,sum=100;該定義變量方式與下面的語句等價:intj,sum;j=0;sum=100;也可以對被定義變量的一部分賦初值。inti=0,j=0,k,sum;不可以用下面的寫法對幾個變量同時賦同一個初值。inti=j=k=0;
9第九頁,共五十一頁,編輯于2023年,星期三幾點說明:
程序運行時從變量中取值,實際上是通過變量名找到相應的內存地址,從其相應的存儲單元中讀取數(shù)據(jù)。程序中變量值卻可以動態(tài)更換。變量定義后并沒有確定的值,或者說值是隨機的??梢圆捎媚承┓椒ńo變量賦值,當再次給變量賦值時,新值將替代舊值。程序中使用的變量,必須“先定義,后使用”。
58a12001a1:變量名58:變量值2001:存儲單元地址Inta1=50;a1=58;a1=a1+2;200210第十頁,共五十一頁,編輯于2023年,星期三關鍵字定義:
為了清晰的表達程序的功能,使用了一些英文單詞或單詞縮寫,這些單詞稱為關鍵字。舉例:if
、int
、while
下面幾個字雖然不屬于關鍵字,但建議讀者把它們看作關鍵字,不要在程序中隨便使用。defineundefincludeifdefifndefendif
11第十一頁,共五十一頁,編輯于2023年,星期三C語言的數(shù)據(jù)類型C語言中各種數(shù)據(jù)類型具有不同的存儲長度、取值范圍及允許的操作。C語言將能處理的數(shù)據(jù)分成兩大類型,基本類型和構造類型,構造類型的數(shù)據(jù)是由若干個基本類型按一定的結構組合而成的。C語言規(guī)定:在程序中用到的數(shù)據(jù),都必須指定其數(shù)據(jù)類型。12第十二頁,共五十一頁,編輯于2023年,星期三整型數(shù)據(jù)1.整型變量(1)有符號整型變量的分類有符號整型變量按數(shù)值的范圍分為三種:1基本整型:以int作為類型說明符2短整型:以shortint或short作為類型說明符3長整型:以longint或long
作為類型說明符整型變量一般在內存中占的字節(jié)數(shù)與所選擇的系統(tǒng)有關,規(guī)定long型整數(shù)不短于int型,short型整數(shù)不長于int型。13第十三頁,共五十一頁,編輯于2023年,星期三(2)無符號整型變量的分類定義:用來處理一些不帶符號的整型變量,將存儲單元中的全部二進制位都用來存放數(shù),取消符號位,稱為無符號整型。無符號整型變量按數(shù)值的取值范圍不同也分為三種:1、無符號基本整型:以unsignedint作為類型說明符2、無符號短整型:以unsignedshortint或unsignedshort
作為類型說明符3、無符號長整型:以unsignedlongint或unsignedlong
作為類型說明符14第十四頁,共五十一頁,編輯于2023年,星期三整型數(shù)據(jù)在內存中的存儲形式01111111111111111111111111111111符號位數(shù)據(jù)位=32767=65535有符號整型無符號整型15第十五頁,共五十一頁,編輯于2023年,星期三2.整型常量整型常量的表達形式整型常量就是整常數(shù)。有以下三種表達形式:1十進制整數(shù)例如:567、0、-89。2八進制數(shù)特征是以數(shù)字符0開頭,并由數(shù)字符0~7組成的字符序列,例如0125,011;3十六進制數(shù)特征是以0x或0X開頭,并由數(shù)字符0~9,和字符a~f或者字符A~F組成的數(shù)字符序列。0x2ab,0X2AB。16第十六頁,共五十一頁,編輯于2023年,星期三整型常量的類型整型常量的類型是由其本身隱含決定的例如:32767的類型是int,32769類型是long
一個整常量后面加一個字母L(或小寫l),則明確指定該常量是longint型的,例如0L,123L,234l等。17第十七頁,共五十一頁,編輯于2023年,星期三實型數(shù)據(jù)1、實型變量(1)實型變量的分類實型變量按數(shù)值的范圍分為三種:1單精度實型:以float作為類型說明符;2雙精度實型:以double作為類型說明符;3長雙精度實型:以longdouble作為類型說明符;類型說明符字節(jié)數(shù)比特數(shù)有效數(shù)字數(shù)值范圍單精度實型float4326-710-38~1038雙精度實型double86415~1610-308~10308長雙精度實型longdouble1612818~1910-4932~10493218第十八頁,共五十一頁,編輯于2023年,星期三(2)實型變量的定義對每一個實型變量,都應在使用前進行定義,例如:
floatx,y;/*定義x,y為單精度實數(shù)*/doublez;/*定義z為雙精度實數(shù)*/2、實型常量實型常量的表達形式十進制小數(shù)形式0.125、.125、-0.125、-125.0、1.25;指數(shù)形式一般格式是實數(shù)(整數(shù))+e(或E)+整數(shù)例如:123.456的指數(shù)形式是1.23456e2、1.23456E2、12.3456e1、0.0123456e4、.123456e3、12345.6e-2等。而e2、1.23e3.5、e、12345E
等都是不合法形式。19第十九頁,共五十一頁,編輯于2023年,星期三字符型數(shù)據(jù)1、字符常量定義:字符常量是用單撇號括起來的一個字符。舉例:‘
a’,‘A’,‘$’,‘5’等都是字符常量。轉義字符:還有一些特殊的字符,C語言約定用“\”開頭的字符序列作為標記,這類字符統(tǒng)稱為“轉義字符”。舉例:轉義字符‘\n’中的“n”不代表字母n,該轉義字符表示在輸出過程中將當前位置移到下一行的開頭,簡稱換行;20第二十頁,共五十一頁,編輯于2023年,星期三2.字符變量定義:用來存放一個字符常量的變量稱為字符變量。
例如程序段:
charc1,c2;/*定義變量c1,c2為字符變量*/c1='a';c2='b';/*將字符常量存放到字符變量中*/幾點說明:字符常量或字符變量在內存中都只占有一個字節(jié)。字符在程序中是以ASCII碼的形式表示的,在內存中是以二進制的形式存儲的,它與以整數(shù)的存儲形式相類似。在C程序中,字符型數(shù)可以當作整型數(shù)進行處理,并且可以和整型數(shù)混合操作和處理。21第二十一頁,共五十一頁,編輯于2023年,星期三閱讀程序。#include<stdio.h>voidmain(){charch1;intch2;ch1='A';ch2='B';printf("\n%d,%d\n",ch1,ch2);ch1=97;ch2=98;ch1=ch1+6;ch2=98+6;printf("%c,%c\n",ch1,ch2);printf("%d,%d",ch1,ch2);}運行結果:65,66g,h103,10422第二十二頁,共五十一頁,編輯于2023年,星期三23第二十三頁,共五十一頁,編輯于2023年,星期三字符串常量定義:字符串常量是括在一對雙撇號之間的字符序列(其中也可以包括轉義字符)舉例:“Clanguage”,“s”,“$35.56”,“\tChins\ba\n”。字符串常量中的字符依次存儲在內存中一塊連續(xù)的區(qū)域內,并把空字符‘\0’(ASCII值為0)自動地附加到字符串的尾部作為字符串的結束標志。例如:字符串"HELLO"字符個數(shù)為5,所占內存空間應為6個字節(jié)。HELLO\024第二十四頁,共五十一頁,編輯于2023年,星期三字符常量和字符串常量的區(qū)別:在程序中,用字符常量或字符串常量表示單個字符,例如‘a’,或“a”,兩者的區(qū)別如下:1、字符串“a”在內存中占2個字節(jié),而字符‘a’
在內存中占1個字節(jié)
字符串"a"字符'a'2、不能將字符串賦給一個字符變量例如程序段:charch1,ch2;
ch1='a';/*正確*/
ch2="a";/*錯誤*/a\0a25第二十五頁,共五十一頁,編輯于2023年,星期三運算符和表達式運算符定義:
描述各種操作的符號稱為運算符。表達式定義:
用運算符將被操作對象連接起來,符合C語言語法的式子稱為表達式。表達式特點:(1)、常量和變量都是表達式(2)、運算符的類型對應表達式的類型,例如:算術運算符對應算術表達式。(3)、每一個表達式都有自己的值。26第二十六頁,共五十一頁,編輯于2023年,星期三運算符屬性:(1)優(yōu)先級當若干個運算符同時出現(xiàn)在表達式中時,優(yōu)先級規(guī)定了運算的先后次序。由于C語言運算符種類很多,所以優(yōu)先級有15級之多。
C語言把圓括號作為運算符,規(guī)定它的優(yōu)先級最高,規(guī)定為15級,從而保證優(yōu)先運算圓括號內的式子,逗號運算符的級別最低,規(guī)定為1級。27第二十七頁,共五十一頁,編輯于2023年,星期三(2)結合性當若干個具有相同優(yōu)先級的運算符相鄰出現(xiàn)在表達式中時,結合方向規(guī)定了運算的先后次序。分為“從左到右”和“從右到左”兩個結合方向。一般來說,大多數(shù)運算符的結合方向”從左到右”,只有單目運算符、賦值運算符和條件運算符的結合方向”從右到左”,這里單目運算符是指作用于一個操作對象的運算符。28第二十八頁,共五十一頁,編輯于2023年,星期三算術運算符和算術表達式算術運算符:+,-,*,/,%幾點說明:1、+、-、*與數(shù)學中的意義相同2、在除法運算中,兩個整數(shù)相除的結果為整數(shù),一般采用”向零取整”的規(guī)則,取整時向零靠攏。例如9/2運算結果為4;-9/2運算結果為-4。29第二十九頁,共五十一頁,編輯于2023年,星期三
3、%是取余運算符或稱模運算符,運算結果是兩個整數(shù)相除后的余數(shù)(整數(shù))。并且規(guī)定運算結果的正負符號與被除數(shù)的符號一致,如果被除數(shù)小于除數(shù),運算結果等于被除數(shù)。
9%2運算結果為12%9的運算結果為2-9%2的運算結果為-19%-2的運算結果為130第三十頁,共五十一頁,編輯于2023年,星期三賦值運算符和賦值表達式賦值運算符是符號=作用:將一個數(shù)據(jù)賦給一個變量。由賦值運算符將一個變量和一個表達式連接起來的式子稱為賦值表達式。一般形式:變量=表達式作用:把賦值運算符右邊表達式的值賦給賦值運算符左邊的變量
31第三十一頁,共五十一頁,編輯于2023年,星期三幾點說明:1、賦值運算后,變量原來的值被表達式的值替換2、賦值表達式的值也就是賦值運算符左邊變量得到的值,如果右邊表達式的值的類型與左邊變量的類型不一致,以左邊變量的類型為基準。3、賦值運算符的優(yōu)先級很低,僅高于逗號運算符。結合方向為“從右向左”。例:inta=2,b=5
計算表達式x=y=a+b的值32第三十二頁,共五十一頁,編輯于2023年,星期三復合賦值運算符復合賦值運算符:+=-=*=/=%=(與算術運算有關)已知:inta,b=5,c=4
計算表達式a+=a-=a=b+c的值。1.a+=(a-=(a=(b+c)))2.a=a+(a=a-(a=(b+c)))3.a=a+(a=a-(a=9));4.a=a+(a=a-9);5.a=a+0;a=0+0;a=0;最后表達式的值為0,變量a的值也為0。33第三十三頁,共五十一頁,編輯于2023年,星期三數(shù)據(jù)類型轉換
整型、實型和字符型數(shù)據(jù)可以進行混合運算,在進行運算時,一般類型的數(shù)據(jù)先轉換成標準類型的數(shù)據(jù),不同類型的數(shù)據(jù)要先轉換成相同類型的數(shù)據(jù)。轉換規(guī)則如下:
不同數(shù)據(jù)類型的數(shù)據(jù)間的混合運算34第三十四頁,共五十一頁,編輯于2023年,星期三1、在運算過程中,每個數(shù)據(jù)要轉換為標準類型,以提高運算精度,例如:如果一個數(shù)據(jù)是float型,首先應轉換double型;如果一個數(shù)據(jù)是short型或char型,首先應轉換為int型。2、通過第一步轉換后,如果參與運算的數(shù)據(jù)類型仍不相同,不同類型的數(shù)據(jù)要先轉換成同一類型的數(shù)據(jù),然后進行運算。轉換的規(guī)則是,“由低向高”,也就是說一個表達式的值的類型是其中各個參與運算的數(shù)據(jù)中級別最高的類型。35第三十五頁,共五十一頁,編輯于2023年,星期三自動轉換
所謂“自動轉換”就是系統(tǒng)根據(jù)規(guī)則自動將兩個不同數(shù)據(jù)類型的運算對象轉換成同一種數(shù)據(jù)類型的過程。36第三十六頁,共五十一頁,編輯于2023年,星期三強制轉換
在C語言中,允許程序員根據(jù)自己的意愿將一種數(shù)據(jù)類型強制轉換成另一種數(shù)據(jù)類型。強制轉換的格式為:
(數(shù)據(jù)類型名)操作對象注意,強制轉換并不改變操作對象的數(shù)據(jù)類型和數(shù)值。例如,(int)f的確切含義是將f轉換成為整型值參與運算,而f本身的數(shù)據(jù)類型和數(shù)值都沒有任何改變。37第三十七頁,共五十一頁,編輯于2023年,星期三賦值表達式的類型轉換當賦值運算符左邊的變量與賦值運算符右邊的表達式的數(shù)據(jù)類型不相同時,系統(tǒng)負責將右邊的數(shù)據(jù)類型轉換成左邊的數(shù)據(jù)類型。會有兩種情況產生,一種是轉換以后會丟失數(shù)據(jù),另一種是轉換以后不會丟失數(shù)據(jù)。這與賦值號兩邊的表達式的數(shù)據(jù)類型所占的字節(jié)數(shù)及存儲表示方式有關。38第三十八頁,共五十一頁,編輯于2023年,星期三intunsignedintlongintdoublefloatchar,short轉換規(guī)則存儲長度較短存儲長度較長總趨勢:算術表達式中的運算轉換小結39第三十九頁,共五十一頁,編輯于2023年,星期三例:intx=2;floaty=1.6;charc='A';c+x*y=?65(int)2(int)1.6(double)3.2(double)68.2(double)40第四十頁,共五十一頁,編輯于2023年,星期三例:#include"stdio.h"voidmain(){intc;/*charc;*/c='B';printf("c=%c",c+'a'-'A');}
運行結果:c=b41第四十一頁,共五十一頁,編輯于2023年,星期三例:#include"stdio.h"voidmain(){charc;inti=0x3241;printf("i=%c\n",i);c=i;printf("c=%d\n",c);printf("i=%d\n",i);}運行結果i=Ac=65i=1286542第四十二頁,共五十一頁,編輯于2023年,星期三自增,自減運算一般形式:
++變量或變量++
――變量或變量――作用:使變量的值增1或減1,其中變量是指算術類型的變量。43第四十三頁,共五十一頁,編輯于2023年,星期三設x為算術類型的變量:x++和++x的相同之處單獨作為一個表達式語句被使用時無論執(zhí)行了哪一種表達式,執(zhí)行結束后x的值都增加1;當x++和++x出現(xiàn)在其他表達式中時,也就是說作為其他表達式的一部分時,表達式的結果是不同的。44第四十四頁,共五十一頁,編輯于2023年,星期三前綴表示法是先將i值增/減1,再在表達式中使用;而后綴表示法是先在表達式中使用i的值,再將i值增/減1。例如:
i=3;i=3;j=i++;j=++i;
結果:j的內容為3j的內容為4i的內容為4i的內容為4
45第四十五頁,共五十一頁,編輯于2023年,星期三閱讀程序main(){ inti=1,j=1,m; m=i++;/*等價于:m=i;i+=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面條工廠招商方案
- 年底發(fā)獎金方案
- 期中模擬試卷(1-4單元)(試題) -2024-2025學年六年級上冊數(shù)學蘇教版
- 空調安裝部署方案
- 陜西省寶雞市鳳翔區(qū)鳳翔中學2024-2025學年高一上學期第一學月地理試卷(含答案)
- 2024-2025學年湖南省永州市道縣樹湘學校八年級(上)第一次月考物理試卷(A卷)(含答案)
- 黑龍江公務員面試模擬20
- 人工智能公司計劃書
- 山西行政職業(yè)能力模擬1
- 河南面試模擬10
- 設計概論第五章-設計的哲學-PPT課件(PPT 111頁)
- 沙鋼高爐及熱風爐砌筑總施工組織設計
- 義烏中學浙江省物理學科基地
- 兒童少先隊大隊委競選PPT模板(15P)
- 棧道棧橋工程施工組織設計
- 浙江大學簡介_ppt課件
- 金融企業(yè)會計復習習題
- 建筑施工現(xiàn)場安全評價表
- 電脫鹽成套技術介紹
- 2015年最新的遙感影像衛(wèi)星數(shù)據(jù)價格官方報價
- 高端自動鋪帶機
評論
0/150
提交評論