




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2講
數據類型、運算符和表達式1計算機中的信息計算機中的信息雖然種類繁多,形式多樣。但是在處理時都可以表達為數據的形式。這里的數據不僅包括我們熟知的數學運算中的數據,還包括聲音、圖像等復雜信息。數據在計算機中進行處理時,首先必須解決的問題是數據在存儲器里的存儲問題:由于計算機的內存大小有限,怎樣存儲更加節約存儲空間?怎樣存儲便于數據的管理,例如查找、排序、統計等。結論:計算機中的數據按照類型進行存儲引出“數據類型”的概念2引例假設要記錄一個人的詳細資料。具體內容如下:姓名:michal性別:男年齡:30工資:2004.86工作單位:人民郵電出版社發行部3假如現在分別用不同的數據來表示上述個人資料中的基本信息。姓名:字符類型數據性別:只有“男”和“女”兩種選擇年齡:都為整數,而且一般不會超過100工資:實數工作單位:內容豐富結論:不同的數據信息在表達時具有不同的特點4劃分數據類型的必要性劃分數據類型的意義:劃分數據類型有利于數據的管理劃分數據類型有利于有效利用計算機有限的內存空間在C程序中:每一個數據都被賦予一個確定的數據類型。不同的數據類型的數據在存儲時占有不同長度的內存空間。注意:C程序中的每一個數據都必須有一個確定的數據類型。5基本數據類型數據類型的分類基本數據類型復雜數據類型幾種常用的基本數據類型:char,字符型:占有一個字節的長度,主要用來描述符號類型的數據。int,整型數:占有4個字節的長度,一般用來描述整數類型的數據float,單精度浮點型實數:占有4個字節的長度,一般用來表示帶有小數的實數。double,雙精度浮點型實數:占有8個字節的長度,一般用來表示精度較高的實數6總結回到前例,下面分析幾種數據在表達上的特點:姓名:工作單位:可以使用字符型數據char來表示年齡:可以使用整型數據int來表示工資:可以使用單精度實數float來表示。在C語言程序中,每一個數據都應該具有特定的類型。7常量常量的概念常量就是在程序運行過程中其數值不會發生改變的量。符號常量的使用定義:#define常量名稱常量值例如:#definePI3.14159用途:便于程序的調試#defineA5…………..A………..A………………….A…….……………..A….A………..8提示:一般來說,在C程序中符號常量通常使用大寫字母表示,以便區別于變量。特殊的字符常量:轉義字符\n:回車換行\a:警鈴聲\t:水平制表
\V:豎直制表\\:反斜杠“\”\‘:單引號“’”9變量變量的概念在程序中其值可以發生改變的量。注意:一個變量在某一時刻只有一個確定的數值,一個變量在獲得新值時原值將不復存在。變量的定義格式:數據類型變量名(=初始值)例如:inti=5對變量名的要求變量名主要由英文字母和數字構成。C程序中的變量名區分大小寫變量名中不允許包含“;”、“。”、“+”、“-”以及“:”等符號。但可以使用下劃線“_”。實際應用中,建議盡量使用具有實際意義的英文單詞作為變量名,盡量做到“見名知義”不要使用系統關鍵字作為變量名10定義變量的實質變量的操作讀(取)寫(存)定義一種數據類型的變量的實質,就是在內存中為該變量分配一定大小的存儲空間。此時變量名作為該存儲空間的標識。當程序對該變量進行運算時,都要訪問該變量對應的存儲空間以進行數據讀寫任何變量在使用前必須定義。在程序中使用未經定義的變量是不合法的11變量的值任何變量必須具有確定的數值才能參加運算和操作。否則將會引發潛在的錯誤。可以在變量定義的同時為其賦初值:
intage=10;也可以在定義變量后再為其賦初值
intage;
age=10;/*此處的“=”為賦值運算符還可以同時定義多個變量并為其賦初值:
Inta=6,b=3,c=7;12整型變量數據在內存中的存放形式二進制補碼整型變量分類基本整型int4字節短整型shortint2字節長整型longint4字節有符號[signed]int
無符號unsignedint3.整型變量的定義13實型變量實型變量的存放形式實型變量的分類
floatdoublelongdouble實型變量的定義14字符型變量字符變量用來存放字符型數據。但是在一個字符變量中只能存放一個字符。字符變量的賦值
charletter=‘a’/*注意加單引號*/字符變量的存儲字符變量在存儲時,在其相對應的存儲單元中并非存儲字符本身,而是將其對應的ASCII代碼(一個整數值)保存在內存空間中。字符串使用雙引號包括起來的字符序列:“CProgram”15數據的表示Bit(位):一個bit存儲一個二進制位(0或1)字節:8個bit作為一個字節,是計算機中為數據分配內存空間的單位。例如:char數據類型數據:1字節;int類型數據:4字節一個數據被分配的存儲空間越大,能容納的信息量越大,越容易表達更加復雜的信息。數據在內存中都以二進制的形式表示10011011高位低位16運算符和表達式運算:對數據進行加工處理的過程。運算量:參與運算的數據。運算符:記錄不同種類運算的符號。表達式:用運算符把運算量連接起來的式子。運算的類型單目運算:單個運算量參與的運算。雙目運算:兩個運算量參與的運算。三目運算:三個運算量參與的運算。在C語言中只有一個三目運算。17C語言中的運算符C語言具有豐富的運算符C語言中的運算符被分為不同的類型任何表達式都有一個確定的值算術運算符:用于實現簡單的數學運算,一般為雙目運算:+(加)、—(減)、*(乘)/:除法(整除)2/4=0;7/3=2;7/3.0=2.3%:取余運算:2%4=2;7%3=1算術表達式:(a+8*6.5/6)%b18關系運算符關系運算符用來比較兩個數據的大小,為雙目運算。關系運算可以歸納為“大于(或等于)”、“小于(或等于)”關系運算的結果是關系成立(結果為真)或不成立(結果為假)關系運算符:<,>,>=,<=,特別注意:==:判斷相等!=:判斷不等=:賦值運算符19關系表達式已知:inta=2;doublef=3.0;charc=‘a’(f/3)>(a-c)1.0-95成立,結果為1(a+2)!=(c-93)44不成立,結果為0(c%a)>(a/2)11不成立,結果為0關系表達式的結果不是1(真)就是0(假):當關系表達式所表示的關系成立時,其結果為1;當關系表達式所表示的關系不成立時,其結果為020邏輯運算符邏輯運算符用來對關系式或邏輯量進行邏輯運算。邏輯運算的結果也僅有兩種:真(1)和假(0)在C語言中使用整數0來表示邏輯假,同時,使用非零值(只要不是0的正數和負數)來代表邏輯真21“與”邏輯運算符&&是一種雙目運算將“與”邏輯運算符&&插入兩個運算量之間組成邏輯表達式。組成表達式的運算量可以是算術表達式、關系表達式以及邏輯表達式對一個與邏輯表達式(&&)求值時,只有組成表達式的所有運算量的值為真(1),其結果才為真,只要這些運算量中有一個的值為假,其值即為假(0)22已知inta=2;doublef=3.0;charc=‘a’(c>a)&&(f>4)(1,0,其值為假)(c>a)&&(f<4)(1,1,其值為真)在邏輯表達式中,若連續出現多個“與”運算,則從左至右依次計算每個表達式的值。只要計算出某一個表達式的值為假,則全式的結果為假,就不再對后面的表達式進行計算-----短路運算符例:intn=1,d=0;d!=0&&n*d<0(不必計算n*d<0)23或邏輯運算符(||)對一個或邏輯表達式(||)求值時,只要組成表達式的運算量中有一個的值為真(1),其結果即為真,只有這些運算量中所有值為假時,其值即為假(0)。已知inta=2;doublef=3.0;charc=‘a’(c>a)||(f>4)(1,0,其值為真)(c<a)||(f>4)(0,0,其值為假)24邏輯非運算(!)單目運算表示對一個表達式的值取反的運算。如果一個表達式的值為真,對其進行邏輯非運算后,其值為假;如果一個表達式的值為假,對其進行邏輯非運算后,其值為真。可以對任意數據類型的表達式進行邏輯非運算。已知inta=2;doublef=3.0;charc=‘a’(c>a)其值為真!(c>a)其值為假25賦值運算將一個數值或一個表達式的值送給一個變量的操作稱為賦值例如:(inta;)a=6;a=a+6;a=a+(b*2+1)注意:表達式中的“=”不在是數學上的等號。這里體現了一種“迭代”的運算。26C語言中的賦值運算由于賦值表達式與傳統的數學等式相悖,容易造成誤解賦值號左端的變量還要在右端重寫一次,顯得過于繁瑣x=x+6x+=6x=x*6x*=6x=x-6x-=6x=x/6x/=6x=x%6x%=627特別地:
x=x+1x++賦值運算是雙目運算,其左值必須是單個變量(有確定的內存空間);其右值可以是表達式、常量以及已經賦值的變量。一個變量在進行賦值運算后,獲得新的數值的同時,原來的值將不復存在。28多重賦值語句由多個賦值運算符組成的語句例:Intx=2,y,z;x+=y=z=6按照“從右至左”的結合順序進行計算,依次完成賦值操作z=6賦值后z變量的值為6y=z將變量z的值賦給變量y,y的值也為6x+=yx=x+yx最終值為829自增自減運算自增運算++:a++:a=a+1自減運算--:a--:a=a-1自增運算包括前置運算和后置運算,二者在參與運算時具有較大區別運算符放在變量的前面:++a;--a變量先自增或自減,然后使用變量自增或自減后的值參加其他運算前置運算30后置運算運算符放在變量的前面:a++;a--變量先以原來的值參與其他運算,然后再自增或自減。例:intm=12,n=5,k=16,x;x=n++;(n的原值5送給x,然后自增為6x=++n;(n自增為7,然后將其值賦給xx=(++k)-(--m)(k先自增為17,m自減為
11,然后將運算結果6賦給xx=k++-m--(k和m以原值進行減法運算,將結果6賦給X,然后k自增,m自減31三目運算格式:包含3個運算量表達式1?表達式2:表達式3;算法:首先計算表達式1的值,若其值為真(非零值),則計算表達式2的值作為整個表達式的值;若其值為假(0),則計算表達式3的值作為整個表達式的值;例:intx=4,y=6,z;
z=x>y?x:y
因為x(4)<y(6),因此將y的值賦給z(6)32運算符的優先級在計算含有多個不同運算符的表達式時,必須考慮哪個運算符優先計算的問題。這是通過為不同類型的運算符設置不同的優先級來實現的。不同優先級的運算符具有不同的運算順序,類似于我們熟知的“先乘除、后加減”33常用運算符的優先級一般來說,單目運算的優先級最高:++、--、!、+(取正數)、-(取負數)*,/,%+,-<,<=,>,>===,!=&&||三目運算:?:賦值運算:=,+=等等最低34優先級總結:單目高于雙目,雙目高于三目,三目高于賦值在雙目中:算術運算高于關系運算,關系運算高于邏輯運算在以后的學習過程中,我們還會不斷學習到更多新的運算符,仍然可以根據上述方法來確定優先級。Intx=4,y=25,z=2;z=(--y/++x)*z--結果:735運算符的結合規則在一個1表達式中,如果同一級別的運算符出現在一個表達式的相鄰位置,這時必須考慮結合規則。例如a+b-c,到底是(a+b)-c還是a+(b-c)大多數運算符的結合規則都是從左到右,只有兩類運算符是從右到左:單目運算:!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公樓廣告牌安裝與物聯網技術應用合同
- 老師的教育故事
- 管理體制改革指南解讀
- 2024玉環市中等職業技術學校工作人員招聘考試及答案
- 2024泰安市文化產業中等專業學校工作人員招聘考試及答案
- 工程電梯安全
- 臨時停車場地租賃合同范本
- 老年營養不良患者的護理
- 簡易采購合同模板
- 美容行業動態分享
- 2024商場能源管理及節能改造項目合同范本3篇
- 廣東中考英語2020-2024年5年真題匯編-學生版-專題07 閱讀理解之說明文
- 智能懸架系統集成開發關鍵技術與實踐-2024-12-技術資料
- 全國第三屆職業技能大賽(無人機駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 2024年度微生物菌劑產品試用與反饋協議3篇
- 成人肥胖食養指南(2024年版)
- 危險化學品理化性質培訓
- 危險化學品目錄(2024版)
- 骨科術后下肢腫脹護理
- 快件處理員(高級)職業技能鑒定考試題庫(含答案)
- 福建省廈門市雙十中學2024-2025學年九年級上學期期中考試英語試題
評論
0/150
提交評論