![C語言的基本數(shù)據(jù)類型和存儲類_第1頁](http://file4.renrendoc.com/view/7b2ea54a501ae89257c7b355e2d84a31/7b2ea54a501ae89257c7b355e2d84a311.gif)
![C語言的基本數(shù)據(jù)類型和存儲類_第2頁](http://file4.renrendoc.com/view/7b2ea54a501ae89257c7b355e2d84a31/7b2ea54a501ae89257c7b355e2d84a312.gif)
![C語言的基本數(shù)據(jù)類型和存儲類_第3頁](http://file4.renrendoc.com/view/7b2ea54a501ae89257c7b355e2d84a31/7b2ea54a501ae89257c7b355e2d84a313.gif)
![C語言的基本數(shù)據(jù)類型和存儲類_第4頁](http://file4.renrendoc.com/view/7b2ea54a501ae89257c7b355e2d84a31/7b2ea54a501ae89257c7b355e2d84a314.gif)
![C語言的基本數(shù)據(jù)類型和存儲類_第5頁](http://file4.renrendoc.com/view/7b2ea54a501ae89257c7b355e2d84a31/7b2ea54a501ae89257c7b355e2d84a315.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章C語言的基本數(shù)據(jù)類型和存儲類2.1整型數(shù)據(jù)
2.1.1整型常量整型常量即整常數(shù),C中的整常數(shù)可以有三種表示形式,即十進(jìn)制整數(shù)、八進(jìn)制整數(shù)和十六進(jìn)制整數(shù)。整型常量的說明:123L、123U、123LU十進(jìn)制數(shù):一串連續(xù)的數(shù)字表示,最高位非零。八進(jìn)制數(shù):以數(shù)字零開頭。十六進(jìn)制數(shù):以數(shù)字零和字母x開頭,a-f不區(qū)分大小寫??紤]如下常數(shù):32767,-32768,0,010,011,016,018,ox10,0xde,0xf2.1.2整型變量C語言中的整型變量分為有符號和無符號兩種,所有變量在使用前必須加以說明或定義。其中:每種有符號整型變量又可細(xì)分為標(biāo)準(zhǔn)整型(int)、短整型(short)和長整型(long)三類,其值可正可負(fù)。例如:inta,b;/shortc,d;/longf,g;每種無符號整型變量也可細(xì)分為標(biāo)準(zhǔn)整型(unsignedint)、短整型(unsignedshort)和長整型(unsignedlong)三類,其值不能為負(fù)。例如:unsignedinta,b;/unsignedshortc,d;/unsignedlongf,g;int、short和long的區(qū)別主要在表示的整數(shù)范圍不同。通常以一個機(jī)器字來存放一個int型數(shù)據(jù)。且int、short和long型整數(shù)的字長滿足:short≤int≤long2.1.3整型數(shù)據(jù)的存儲表示正整數(shù):以原碼形式存放在內(nèi)存中,字長為16時,整數(shù)范圍取0-32767。例如:整數(shù)5對應(yīng)0000000000000101。負(fù)整數(shù):以補(bǔ)碼形式存放在內(nèi)存中。例如:-5十進(jìn)制負(fù)整數(shù)補(bǔ)碼形式:[1000000000000101]原碼求原碼的反碼:[1111111111111010]反碼把所得的反碼加1:[1111111111111011]補(bǔ)碼內(nèi)存中的補(bǔ)碼十進(jìn)制負(fù)整數(shù):對補(bǔ)碼各位取反:[1111111111111010]補(bǔ)碼,取反后得:1000000000000101將其轉(zhuǎn)換為十進(jìn)制數(shù):得-5將結(jié)果減1,得-5-1=-6。考慮[1000000000000000]、[1111111111111111]2.2字符型數(shù)據(jù)2.2.1字符型常量字符型常量是由一對單引號括起來的單個字符(可打印)。如:′x′,′a′,′A′,′b′,′$′,′#′。一個轉(zhuǎn)義序列是一個反斜線后跟特定的字符,表示某些不可打印的字符(如回車符,響鈴符等)。例如:\n
換行符\\反斜線符\t
水平制表符\′單引號符\b
退格符\0空字符\r
回車符\ddd
位型這里ddd是1至3位八進(jìn)制數(shù)字\f
換頁符\0xff
位型這里ff是1至2位十六進(jìn)制數(shù)字注意:轉(zhuǎn)義序列實(shí)際上作為一個字符來對待。但如果反斜線之后的字符和它不構(gòu)成轉(zhuǎn)義序列,則′\′不起轉(zhuǎn)義作用將被忽略。例如:語句printf(″A\Nbc\nDEF\n″);語句printf(″\tab\rcd\n\′ef\\gh\x″);2.2字符型數(shù)據(jù)字符型變量是通過保留字char來說明的,其格式如下:
charc1,c2;該語句說明了c1和c2兩個字符型變量。每個字符型變量可用來存放一個字符,例如:
#include“stdio.h”main(){charch;
ch=getchar();
putchar(ch);}2.2.2字符型變量2.2.3字符型數(shù)據(jù)的存儲表示字符數(shù)據(jù)在計算機(jī)內(nèi)部也是以一個字節(jié)的二進(jìn)制形式來表示的,即事先對所要處理的每個字符都進(jìn)行編碼(通常是一個整型數(shù))且不同的字符其編碼也不相同。例如:
#include“stdio.h”#include“stdio.h”main()main(){charbell;{bell=7;putchar(7);
putchar(be);}}main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;
printf(“c1=%cc2=%c\n”,c1,c2);printf(“c1_ASCII_CODE=%dc2_ASCII_CODE=%d\n”,c1,c2);}運(yùn)行結(jié)果:printf中的參數(shù)個數(shù)可以有多個,但第一個參數(shù)必須是字符串,我們稱其為格式串(format-string)。c1=Ac2=Bc1_ASCII_CODE=65c2_ASCII_CODE=652.2.3字符型數(shù)據(jù)的存儲表示printf首先對格式串從左向右掃描,當(dāng)遇到可顯示字符時就在終端上原樣輸出,當(dāng)遇到控制字符(如‘\n’,響鈴符等)就產(chǎn)生相應(yīng)的動作(換行,響鈴等),當(dāng)遇到轉(zhuǎn)換符時,就將后面的實(shí)參依次按轉(zhuǎn)換符的要求轉(zhuǎn)換并輸出。常用的轉(zhuǎn)換符有:%d十進(jìn)制整型、%c字符型、%f浮點(diǎn)型、%s字符串型在使用ASCII編碼系統(tǒng)的機(jī)器上,用C編寫一個將大寫英文字母轉(zhuǎn)換為小寫字母的程序,可用如下一些語句實(shí)現(xiàn):{charch;
ch=getchar();if(ch>=‘A’&&ch<=‘Z’)putchar(‘a(chǎn)’+ch-’A’);}若將上面程序中的字符常量‘A’,‘Z’和‘a(chǎn)’分別用整常數(shù)65,90和97來代替程序能否正確運(yùn)行?2.2.3字符型數(shù)據(jù)的存儲表示C編譯系統(tǒng)將字符型數(shù)據(jù)當(dāng)成有符號整型還是無符號整型沒有規(guī)定。例如:
main(){charch;
ch=‘\376’;
printf(“%d”,ch);}如果將字符看成無符號的,則輸出254,否則,輸出-2。字符量可參與任何整數(shù)運(yùn)算,
如:‘B’-’A’=66-65=1;‘a(chǎn)’+1=97+1=‘b’數(shù)字字符整數(shù)值,如:‘9’-‘0’=57-48=9;9+‘0’=9=48=57=‘9’;字符量可以參加關(guān)系運(yùn)算,如:‘a(chǎn)’<‘b’=真字符量可以參加邏輯運(yùn)算,如:‘a(chǎn)’&&‘b’=真2.2.3字符型數(shù)據(jù)的存儲表示2.2.4字符串常量字符串常量是用一對雙引號括起來的零個或多個字符的序列。如:“Iamastudent”,“x”,“”其中:“”只充當(dāng)字符串的分界符,而不是字符串的一部分。如果字符串中要出現(xiàn)雙引號,則必須經(jīng)過轉(zhuǎn)義序列,如:The“a”isanindefart寫成字符串應(yīng)該是:
“The\042a\042isanindefart”字符串中所含的字符個數(shù)稱字符串的長度。例:“XYZ”的長度為3,“”的長度為0,稱為空串。字符串所占的空間為長度+1,增加的一個字節(jié)存放字符串‘\0’作為字符串的結(jié)尾標(biāo)志。轉(zhuǎn)義序列也可以出現(xiàn)在字符串中。但是只作為一個字符看待。例如:“Iama\nstudent”。2.3浮點(diǎn)型數(shù)據(jù)2.3.1浮點(diǎn)型常量浮點(diǎn)型常量有非指數(shù)型和指數(shù)型兩種。非指數(shù)型:是指不帶指數(shù)部分的實(shí)型常數(shù),如+123.,123.,-123,+123.45,123.45,-123.45指數(shù)型:是指帶有指數(shù)部分的實(shí)數(shù),如.12345e2,12345.0e-3,它們的值都是12.345。e(E)之前必須有數(shù)字,之后的指數(shù)必須為整數(shù),且不能插入空格!2.3.2浮點(diǎn)型變量浮點(diǎn)型變量是通過保留字float來說明的。如:
floatx,y,z;x=12.345;y=.12345e2;z=12345.e-3;2.3.3浮點(diǎn)型數(shù)據(jù)的存儲表示浮點(diǎn)型數(shù)據(jù)的存儲表示:二進(jìn)制的浮點(diǎn)形式。如(0.5)10=(0.1)2=(.1×20)=(1×2-1)(12.1875)10=(1100.0011)2=(.11000011×24)=(11000011×2-4)而任何一個二進(jìn)制實(shí)數(shù)總可以表示成:N=S×2p
其中:
p、S都是有符號二進(jìn)制整數(shù)。p稱為階碼,S稱為尾數(shù)注意:S中無小數(shù)點(diǎn)或小數(shù)點(diǎn)約定為在最前頭。設(shè)p的字長為n1,S的字長為n2,則有-2n1-1≤p≤2n1-1-1,
-2n2-1≤S≤2n2-1-1,則一個實(shí)數(shù)的字長為:n1+n2。例如:設(shè)n2=24n1=8,則有:-128≤p≤127,-8388608≤S≤8388607
即N=S×2p的取值范圍是:2-128≤|N|≤2127,
約為10-39≤|N|≤1038而N的精度大約為7位有效數(shù)字2.4雙精度型數(shù)據(jù)雙精度型:字長比浮點(diǎn)型多一倍,一般占用8個字節(jié)。其中:(n2=48)+(n1=16)=64其精度大約為17位有效數(shù)字,浮點(diǎn)型為7位精度;C中每個浮點(diǎn)常量在機(jī)中都是以雙精度型來存放和表示的;雙精度變量是通過double保留字來說明的,如:
doublea,b;a=2.718281828459;b=4.84813681106e-7;main(){floatx;doubley;inti;x=0.0;y=0.0;i=1;while(i<=10000){x=x+100000.0;y=y+100000.0;i=i+1;}x=x/10000.0;y=y/10000.0;
printf(“x=%f,y=%f\n”,x,y,);}運(yùn)行結(jié)果為:可以看出x有約1.5‰的誤差,而y沒有精度損失。2.4雙精度型數(shù)據(jù)x=99985.179688,y=100000.0000002.5變量的初始化程序中,在變量說明完之后到使用之前,要對其賦初值。如:
inti,j;inti=0,j=0;
i=0;┇
j=0;
while(i<=15)┇
┇
while(i<=15)
┇
兩者是等效的。其它類型變量的初始化方法類似,如:inti=1,j,k=3;charbell=7,esc=27,sex=‘f’;floatpi=3.14159;doubleloge=2.718281828459;2.6變量的存儲類變量的兩個屬性:存在性和可見性存在性:是指變量都具有一個數(shù)據(jù)類型并以一定的方式存于內(nèi)存之中。可見性:是指在其作用域中是可見的(活動的),而一旦出了其作用域便不再可見。變量的作用域:是指該變量有定義的程序部分。變量的以上兩個屬性是由以下四個變量存儲類決定的:自動的(auto)寄存器(register)
靜態(tài)的(static)外部的(extern)2.6.1自動變量由保留字auto說明或定義的變量。例如:
{
autointa;autocharch=‘x’;autofloatd,e;autodoublef1,f2;}Auto可省略不寫自動變量是局部變量,其作用域局限于其所在的函數(shù)或塊。自動變量每進(jìn)入一次函數(shù)體,就賦一次指定的初值。2.6.2寄存器變量寄存器變量是通過在變量說明前面加保留字register來完成的。寄存器變量的用法和作用域規(guī)定與自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某日企汽車技術(shù)研究中心口譯實(shí)踐報告
- 水-能-糧關(guān)聯(lián)視角下贛南生態(tài)系統(tǒng)服務(wù)供需關(guān)系研究
- 電子商城在水楊酸產(chǎn)品銷售中的應(yīng)用案例
- 微孔陶瓷過濾介質(zhì)行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 介孔碳基吸附材料的溶液燃燒可控制備及其性能研究
- 基于英語學(xué)習(xí)活動觀的高中英語讀寫結(jié)合教學(xué)個案研究
- 2021-2026年中國納米節(jié)油器行業(yè)市場全景調(diào)研及投資規(guī)劃建議報告
- 西寧關(guān)于成立金屬置物架公司可行性研究報告參考范文
- 減氮配施對設(shè)施菜地氮素氣態(tài)損失和地下淋溶的影響研究
- 超高強(qiáng)擠壓鑄造鋁合金成分設(shè)計與組織性能研究
- 質(zhì)量體系工程師崗位說明書
- 三年級上語文開學(xué)第一課
- 烹飪刀工與原料成型技術(shù)課件
- 消防設(shè)施維護(hù)與日常檢查培訓(xùn)講義
- 最新安全生產(chǎn)管理教材電子版
- 良性陣發(fā)性位置性眩暈完整版本課件
- 典當(dāng)業(yè)務(wù)計劃方案
- 老化箱點(diǎn)檢表A4版本
- 音標(biāo)教學(xué)課件(共73張PPT)
- 2012數(shù)據(jù)結(jié)構(gòu)英文試卷A及答案
- 二次回路施工驗(yàn)收
評論
0/150
提交評論