dC語言的基本數(shù)據(jù)類型與表達式課件_第1頁
dC語言的基本數(shù)據(jù)類型與表達式課件_第2頁
dC語言的基本數(shù)據(jù)類型與表達式課件_第3頁
dC語言的基本數(shù)據(jù)類型與表達式課件_第4頁
dC語言的基本數(shù)據(jù)類型與表達式課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)類型(Data Type)數(shù)據(jù)為什么要區(qū)分類型?不同類型的數(shù)據(jù)代表不同的數(shù)據(jù)表示形式合法的取值范圍占用內存空間大小可參與的運算種類 第1頁,共37頁。數(shù)據(jù)類型(Data Type)字符類型char整型int、long、short基本類型實型單精度型float浮點型雙精度型double數(shù)據(jù)類型枚舉類型enum數(shù)組類型 構造類型結構體類型struct共用體類型union指針類型*空類型void第2頁,共37頁?;緮?shù)據(jù)類型int整數(shù),在目前絕大多數(shù)機器上占4個字節(jié)TC中是2個字節(jié)VC中是4個字節(jié)float單精度浮點數(shù),一般是4個字節(jié)長double雙精度浮點數(shù),一般是8個字節(jié)長char字符,一般

2、是1個字節(jié)長用來表示256個ASCII字符,或者0255的整數(shù)第3頁,共37頁。基本數(shù)據(jù)類型shortshort int,短整數(shù),一般2個字節(jié)長,通常簡寫為short。longlong int,長整數(shù),一般是4個字節(jié)長。通常簡寫為long。long double,長雙精度(高精度)浮點數(shù),一般是10個字節(jié)。signed用來修飾char、int、short和long,說明他們是有符號的整數(shù)(正整數(shù)、0和負整數(shù)),通常情況下該修飾符缺省。unsigned用來修飾char、int、short和long,說明他們是無符號的整數(shù)(正整數(shù)和0)。第4頁,共37頁。何謂類型溢出(Overflow)C語言直接

3、提供的任何類型都有取值范圍。當向其賦超過此范圍的數(shù)值,就會產生數(shù)值溢出,得到一個不正確的結果。TC中int的范圍是-3276832767如果超出取值范圍,給它一個小于-32768或者大于32767的數(shù)會如何呢?現(xiàn)場編程測驗小蛇能吞下大象嗎?typeoverflow.c第5頁,共37頁。常量是指在程序運行中,其數(shù)值不能被改變的量直接常量(常數(shù))數(shù)值常量整型常量實型常量字符型常量字符常量字符串常量符號常量標識符定義第6頁,共37頁。整型常數(shù)int型常量:18、-31(十進制)long int型常量: 123456L、 123456l、123L、123lunsigned int型常量:123u、12

4、3U八進制常量:以數(shù)字0開頭的整數(shù)例如:012=1*81+2*80=10(十進制)十六進制形式:以0 x開頭的整數(shù)例如:0 x12=1*161+2*160=18(十進制)第7頁,共37頁。實型常數(shù)十進制小數(shù)形式:123.45、456.78指數(shù)形式:1e-2、4.5e3float型常量:123.45f、 456.78F、1e-2f、4.5e3Flong double型常量:123.45l、 456.78L、4.5e3L缺省為double因為字母l和數(shù)字1容易混淆,所以當用l做后綴時,常使用大寫形式第8頁,共37頁。字符常數(shù)字符常數(shù)的表示方法a,A,5,%,$單引號內只能有一個字符,除非用”開頭就

5、是一個普通整數(shù),也可以參與各種數(shù)學運算每個字符具有一個0255之間的數(shù)值,可從ASCII表查出注意:5和5有本質的區(qū)別字符的數(shù)學運算在密碼學內用得比較多用”開頭的字符為轉義字符例如:”n”,代表1個字符,其含義是換行第9頁,共37頁。轉義字符一些特殊字符(無法從鍵盤輸入或者另有它用)用轉義字符表示。第10頁,共37頁。字符串String常數(shù)用雙引號括住的由零個或多個字符組成的字符序列I am a string表示空字符串轉義字符也可以在字符串中使用引號只作為字符串開始和結束的標志C語言內部用0表示字符串的結束除注釋外,是唯一可以出現(xiàn)中文的地方x和x是不同的里定義了一系列專門的字符串處理函數(shù)第1

6、1頁,共37頁。符號常量含義:用標識符定義一個常量,也叫做宏常量,通常用大寫字母表示。一旦某個標識符被定義成為一個常量后,以后在程序處理時,該標識符都代表對應的常量值。定義格式:#define 標識符 常量數(shù)據(jù)#define MAX 1000#define MIX 10#define PI 3.14第12頁,共37頁。計算圓的周長和面積prg2-2.c#include void main()printf(“circumference = %fn”, 2*3.14*3.5);printf(“area = %fn”, 3.14*3.5*3.5);第13頁,共37頁。計算圓的周長和面積prg2-2.

7、c#include #define PI 3.14#define R 3.5void main()printf(“circumference = %fn”, 2*PI*R);printf(“area = %fn”, PI*R*R);第14頁,共37頁。變量是指以標識符為名字,其值可以改變的量定義形式:類型標識符 變量名1, 變量名2, 變量名3; 類型標識符:如int、float、char等變量名:程序員自行確定,符合標識符命名規(guī)則即可,約定做到見名知意習慣用下劃線和大小寫間隔的方式命名標識符user_name:Unix風格UserName:Windows風格變量定義是語句,分號一定不能缺少第

8、15頁,共37頁。變量定義int a,b,c;int a; int b; int c;float m,n;char s,t;在C語言程序中,變量必須“先定義,后使用”。變量定義主要是指出變量的名字,確定變量的數(shù)據(jù)類型。在同一個程序段中,變量不能被重復定義。注意!第16頁,共37頁。變量賦值變量定義后只是按照類型分配了所需的存儲空間,但是沒有具體的值。變量初始化:第一次給變量賦值的過程,這個值稱為變量的初值。先定義再賦值int a;a=2;定義的同時賦值int a=2;第17頁,共37頁。變量賦值int a,b,c;a=b=c=3;可以等價為int a=b=c=3;變量初始化后可以再次賦值(即修

9、改變量的值),但是一個變量任何時刻只能有一個值。int a=5;/變量a初始化賦值為5a=12;/變量a的值賦值為12,即發(fā)生修改賦值操作是從右向左進行的變量定義的同時不能連續(xù)初始化注意!第18頁,共37頁。算術運算符+、-、*、/、%(求余):雙目運算符%運算左右兩數(shù)必須為整型數(shù)據(jù)5%3=_,6.2%3=_兩個整數(shù)相除,結果自動取整(向零取整)5/3=_參加運算的兩個數(shù)中有一個為實數(shù),結果為double型x為double型,y為int型,則x+y的類型的為_字符型數(shù)據(jù)可以和數(shù)值型數(shù)據(jù)混合運算6+A=_第19頁,共37頁。*自增、自減運算符單目運算符,也叫做一元運算符使變量的值在當前基礎上加1

10、/減1i+/i-:先使用變量i的值,i值再加1/減1+i/-i:i值先加1/減1,再使用變量i的值int x = 3, m, n;m = x+;n = +x;執(zhí)行后m、n、x的值各是多少?(1) +i和i+,其本質都可以使i值加1,-同理。(2) +i和i+,求值和使用的先后順序,-同理。注意!第20頁,共37頁。*自增、自減運算符m = x+;m = x;x = x + 1;n = +x;x = x + 1;n = x;第21頁,共37頁。關系運算符,=, b & b c):a大于b并且b大于c或運算|a | b,只要兩者中有一個為真,結果就為真( a b | b c):a大于b或者b大于c

11、非運算!a,如果a是0,結果非0;如果a是非0,結果是0并不改變a的值第23頁,共37頁。邏輯運算符prg2-3.c#include void main()int a = 10, b = 20, c = 30, d;d = +a = 20 | c+;printf(a = %d, b = %d, c = %d, d = %dn,a,b,c,d);注意!邏輯運算的短路特性第24頁,共37頁。實例判斷某一年year是否是閏年的條件是滿足下列兩個條件之一:能被4整除,但不能被100整除;能被400整除;請用C語言運算符和表達式正確描述上述閏年的條件。(year % 4 = 0) & (year % 1

12、00 != 0) | (year % 400 = 0)第25頁,共37頁。賦值運算符賦值運算符=:將一個數(shù)據(jù)賦給一個變量賦值表達式: 可以是常量、變量或者表達式int a,b=5,m=7,n=8;a=b;a=m+n;優(yōu)先級:賦值運算符優(yōu)先級低于算術運算符、關系運算符和邏輯運算符結合性:右結合性第26頁,共37頁。復合賦值運算符在賦值運算符“=”之前加上其他運算符,構成復合賦值運算符。復合賦值表達式 x += 5;x *= y+8;x %= 3;x -= y;x = x + 5;x = x * (y+8);x = x % 3;x = x - y;第27頁,共37頁。逗號運算符一般形式:表達式1,

13、 表達式2求解過程先求解表達式1的值,再求解表達式2的值。整個逗號表達式的值是表達式2的值。擴展形式:表達式1, 表達式2, , 表達式nint x,y=5;x=(y=y+6,y=y/3);則x的值為_(1) 先計算y=y+6的值,y=5+6,y值為11。(2) 再計算y=y/3的值,y=11/3,y值為3。所以變量x的值為3。第28頁,共37頁。條件運算符一般形式: ? : 運算順序先求解表達式1的值。如果表達式1的值為真,則求解表達式2的值并把它作為整個表達式的值。如果表達式1的值為假,則求解表達式3的值并把它作為整個表達式的值。第29頁,共37頁。實例1今天我要出門辦事,因為需要外出一整

14、天而這段時間又是多雨的季節(jié),所以我要考慮是否需要攜帶雨傘。我的判斷依據(jù)是出門時天陰帶傘,反之不帶傘。請用條件表達式描述上述判斷原則。分析:外出時有兩種選擇帶傘或不帶傘,其判別依據(jù)為是否天陰。條件表達式描述如下:天陰 ? 帶傘 : 不帶傘第30頁,共37頁。實例2已知符號函數(shù)映射關系如下:請用條件表達式給變量y賦值。y = (x = 0) ? (x 0) ? 1 : 0) : -1第31頁,共37頁。實例2y = (x = 0) ? (x 0) ? 1 : 0) : -1表達式2:(x 0) ? 1 : 0表達式1表達式2表達式3表達式1表達式2表達式3第32頁,共37頁。求字節(jié)運算符一般形式s

15、izeof(變量名):返回變量的字節(jié)長度sizeof(類型名):返回類型的字節(jié)長度求出的結果為變量或者類型占用的字節(jié)數(shù)。為什么要用sizeof獲得類型或變量的字長?第33頁,共37頁。求字節(jié)運算符prg2-4.c#include void main()printf(Data type Number of bytesn);printf(- -n);printf(char%dn, sizeof(char);printf(int%dn, sizeof(int);printf(short int%dn, sizeof(short);printf(long int%dn, sizeof(long);printf(float%dn, sizeof(float);printf(double%dn, sizeof(double);VC編譯器TC編譯器第34頁,共37頁。運算符的優(yōu)先級( ) - .! + - + - * & (類型) sizeof* / %+ - = !=&|&|? := += -= *= /= %= &= = |= =,第35頁,共37頁。自動類型轉換同種數(shù)據(jù)類型的運算結果,還是該類型不同種數(shù)據(jù)類型的運算結果,是兩種類型中取值范圍更大的那種doubl

溫馨提示

  • 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

提交評論