資源描述:
《c語言數(shù)據(jù)類型、運算符與表達式》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)類型、運算符與表達式C語言程序設計13.1C的數(shù)據(jù)類型數(shù)據(jù)類型基本類型構造類型指針類型空類型整型字符型實型(浮點型)單精度型雙精度型枚舉類型數(shù)組類型結構體類型共同體類型2常量在程序運行過程中,其值不能被改變的量稱為常量,常量分為以下兩類。可以從字面形式判別的是字面常量或直接常量;可以用一個標識符代表一個常量,稱符號常量。符號常量的使用:#defineRATE8.54voidmain(void){floatresult;result=1000.0*RATE;printf(“resultis%f”,result);}
2、3變量變量名和變量值:3a變量名變量值存儲單元標識符:標識變量名、符號常量名、函數(shù)名、類型名、文件名的有效字符序列。C語言對標識符的規(guī)定:1、只能由英文字母、數(shù)字字符、下劃線構成,且第一個字符必須是英文字母(大寫或小寫)或下劃線。2、在C語言中,力求簡潔,做到“見名知義”,TurboC允許32個字符。C語言對變量的規(guī)定:做到先定義,后使用。4整型數(shù)據(jù)整型常量的表示方法整型常量即整型常數(shù)十進制整數(shù)八進制整數(shù)(以0開頭的數(shù))十六進制整數(shù)(以0x開頭的數(shù))整型變量的分類整型變量總體上可以分為有符號數(shù)和無符號數(shù)兩類整數(shù)類型位數(shù)定
3、義類型字表示數(shù)的范圍有符號基本型16into-32768~+32767短整型16short[into]-32768~+32767長整型32long[into]-231~(231-1)無符號基本型16unsigned[into]0~65535短整型16unsignedshort0~65535長整型32unsignedlong0~(232-1)5整型數(shù)據(jù)整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中以二進制形式存放,確切的說是以補碼的形式表示的。一個正數(shù)的補碼和原碼形式相同,而負數(shù)的補碼是將該數(shù)的絕對值的二進制形式,按位取反
4、再加1。1111111111111111111111111111111整型數(shù)無符號整型數(shù)表示-1的補碼表示數(shù)值6553516整型數(shù)據(jù)整型變量的定義對變量的定義,一般是放在一個函數(shù)的開頭部分的聲明部分。main(){inta,b,c,d;/*定義整型變量*/unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%dtb+u=%d”,c,d);}整型數(shù)據(jù)的溢出如果一個整型變量存放的值,超出它所允許的范圍,將會產(chǎn)生溢出,例如一個into型變量,如果其值為32767,再加
5、1就會產(chǎn)生溢出,變成-32768。但運行時并不報錯。7整型數(shù)據(jù)整型常量的類型注意:1、一個整型常量,如果其值在-32768~+32767范圍內(nèi),認為它是into型,它可以賦給into型和longint型變量。2、一個整型常量,如果其值超過了上述范圍,而在-2147483648~+2147483647范圍內(nèi),則認為它是longint型。3、一個整常數(shù)后面加一個字母u或U,認為是unsignedint型。4、一個整常數(shù)后面加一個字母l或L,認為是longint型常數(shù)。8實型數(shù)據(jù)實型常量的表示方法1、十進制小數(shù)形式:.1232
6、3.12、指數(shù)形式:123e31.234e34(e前必須有數(shù)字,e后指數(shù)必須為整數(shù))實型變量的分類單精度(float):4B10-38~10386~7雙精度(double):8B10-308~1030815~16長雙精度:16B10-4931~10493218~19實型數(shù)據(jù)在內(nèi)存中的存放形式一個實型數(shù)據(jù)一般在內(nèi)存中占四個字節(jié),系統(tǒng)把一個實型數(shù)分成小數(shù)部分和指數(shù)部分,分別存放采用規(guī)范化的指數(shù)方式示,如:數(shù)符小數(shù)指數(shù)符號指數(shù)+0.123456-2小數(shù)部分指數(shù)部分9實型數(shù)據(jù)實型變量的定義示例:floatx,y;/*指定x、y
7、為單精度實數(shù)*/doublez;/*指定z為雙精度實數(shù)*/實型數(shù)據(jù)應用中的誤差問題(error.c)main(){floata,b;doublec,d;a=123456.789e5;c=123456.789e5;b=a+20;d=c+20;printf("%f",a);printf("%f",b);printf("%f",c);printf("%f",d);}應避免將一個很大的數(shù)和很小的數(shù)直接作加、減運算,否則就會“丟失”小的數(shù)。10實型數(shù)據(jù)實型常量的類型1c編譯系統(tǒng)將實型常量作為雙精度來處理,若按照
8、單精度來處理,應該在實型常量的后面加字母f或F。2實型常量賦值給實型變量的規(guī)則:根據(jù)實型變量的類型來截取實型常量中相應有效位數(shù)字(able.c)。main(){floata;doubleb;a=123456.789876e5;b=12345.789876e5;Printf(“%f,%f”,a,b);}11字符型數(shù)