資源描述:
《c語言變量類型(詳細(xì))》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1數(shù)據(jù)類型關(guān)鍵字 A.基本數(shù)據(jù)類型(5個(gè)) void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯式丟棄運(yùn)算結(jié)果 char:字符型類型數(shù)據(jù),屬于整型數(shù)據(jù)的一種int:整型數(shù)據(jù),通常為編譯器指定的機(jī)器字長在VC中,最長FFFFFFFF八位16進(jìn)制,-2147483648到+2147483647float:單精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的一種 double:雙精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的一種float與doublefloat和double的范圍是由指數(shù)的位數(shù)來決定的。float的指數(shù)位有8位,而double的指數(shù)位有11位,分布如下:floa
2、t:1bit(符號(hào)位)8bits(指數(shù)位)23bits(尾數(shù)位)double:1bit(符號(hào)位)11bits(指數(shù)位)52bits(尾數(shù)位)于是,float的指數(shù)范圍為-127~+128,而double的指數(shù)范圍為-1023~+1024,并且指數(shù)位是按補(bǔ)碼的形式來劃分的。其中負(fù)指數(shù)決定了浮點(diǎn)數(shù)所能表達(dá)的絕對(duì)值最小的非零數(shù);而正指數(shù)決定了浮點(diǎn)數(shù)所能表達(dá)的絕對(duì)值最大的數(shù),也即決定了浮點(diǎn)數(shù)的取值范圍。float的范圍為-2^128~+2^128,也即-3.40E+38~+3.40E+38;double的范圍為-2^1024~+2^1024,也即-1.79
3、E+308~+1.79E+308。float和double的精度是由尾數(shù)的位數(shù)來決定的。浮點(diǎn)數(shù)在內(nèi)存中是按科學(xué)計(jì)數(shù)法來存儲(chǔ)的,其整數(shù)部分始終是一個(gè)隱含著的“1”,由于它是不變的,故不能對(duì)精度造成影響。float:2^23=8388608,一共七位,這意味著最多能有7位有效數(shù)字,但絕對(duì)能保證的為6位,也即float的精度為6~7位有效數(shù)字;double:2^52=4503599627370496,一共16位,同理,double的精度為15~16位?! .類型修飾關(guān)鍵字(4個(gè))short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。-32768到+
4、32767四位16進(jìn)制long:修飾int,長整形數(shù)據(jù),可省略被修飾的int。FFFFFFFF八位16進(jìn)制,-2147483648到+2147483647 signed:修飾整型數(shù)據(jù),有符號(hào)數(shù)據(jù)類型unsigned:修飾整型數(shù)據(jù),無符號(hào)數(shù)據(jù)類型#includeintmain(intargc,char*argv[]){unsignedshorta=-1;shortb=a;printf("%d%d",a,b);return0;}//結(jié)果:65535-1這是段很簡單的代碼??在計(jì)算機(jī)中,負(fù)數(shù)是以補(bǔ)碼來存儲(chǔ)的。C語言中常量整數(shù)-1的補(bǔ)碼
5、表示為0xFFFFFFFF。截取后面16位FFFF賦值給變量a(unsignedshort)。此時(shí)a=0xFFFF(a沒有符號(hào)位,0xFFFF轉(zhuǎn)換為十進(jìn)制為65535)。???a又將0xFFFF,直接賦值給shortb。此時(shí)b=0xFFFF(但是要注意,b是有符號(hào)的,0xFFFF轉(zhuǎn)換為十進(jìn)制為-1)。執(zhí)行printf("%d%d",a,b);的時(shí)候,要將a和b的值先轉(zhuǎn)換為int型:?a沒有符號(hào)所以轉(zhuǎn)為int型為0x0000FFFF,?b有符號(hào)轉(zhuǎn)換為int型為0xFFFFFFFF?! .復(fù)雜類型關(guān)鍵字(5個(gè)) struct:結(jié)構(gòu)體聲明 unio
6、n:共用體聲明 enum:枚舉聲明 typedef:聲明類型別名 sizeof:得到特定類型或特定類型變量的大小 D.存儲(chǔ)級(jí)別關(guān)鍵字(6個(gè)) auto:指定為自動(dòng)變量,由編譯器自動(dòng)分配及釋放。通常在棧上分配 static:指定為靜態(tài)變量,分配在靜態(tài)變量區(qū),修飾函數(shù)時(shí),指定函數(shù)作用域?yàn)槲募?nèi)部 register:指定為寄存器變量,建議編譯器將變量存儲(chǔ)到寄存器中使用,也可以修飾函數(shù)形參,建議編譯器通過寄存器而不是堆棧傳遞參數(shù) extern:指定對(duì)應(yīng)變量為外部變量,即標(biāo)示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其他模
7、塊中尋找其定義?! onst:與volatile合稱“cv特性”,指定變量不可被當(dāng)前線程/進(jìn)程改變(但有可能被系統(tǒng)或其他線程/進(jìn)程改變) volatile:與const合稱“cv特性”,指定變量的值有可能會(huì)被系統(tǒng)或其他進(jìn)程/線程改變,強(qiáng)制編譯器每次從內(nèi)存中取得該變量的值 2流程控制關(guān)鍵字 A.跳轉(zhuǎn)結(jié)構(gòu)(4個(gè)) return:用在函數(shù)體中,返回特定值(或者是void值,即不返回值) continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán) break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu) goto:無條件跳轉(zhuǎn)語句 B.分支結(jié)構(gòu)(5個(gè)) if:條件
8、語句,后面不需要放分號(hào) else:條件語句否定分支(與if連用) switch:開關(guān)語句(多重分支語句) case: