C 語言基礎(chǔ)教程_第1頁
C 語言基礎(chǔ)教程_第2頁
C 語言基礎(chǔ)教程_第3頁
C 語言基礎(chǔ)教程_第4頁
C 語言基礎(chǔ)教程_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——C語言基礎(chǔ)教程1.根本數(shù)據(jù)類型:布爾型(_Booltype)

_Bool型是C99添加的,用于表示布爾值,亦即是表示規(guī)律真(true)和規(guī)律假(false)。由于C用1表示true,0表示false,所以_Bool實(shí)際上是整數(shù)類型。理論上_Bool只需要1bit存儲(chǔ)單元,由于1bit就足以表示0和1。事實(shí)上,_Bool是無符號(hào)整型,一般占用1字節(jié)。例如:_Boolflag=1;flag=0;包含標(biāo)準(zhǔn)頭文件stdbool.h后,我們可以用bool代替_Bool,true代替1,false代替0。例如:boolflag=true;flag=false;這么做是為了和C++兼容。留神:stdbool.h是C99添加的。

2.根本數(shù)據(jù)類型:浮點(diǎn)類型

1.float,double,以及l(fā)ongdouble前面所說的數(shù)據(jù)類型只能用于處理整數(shù)。假設(shè)我們需要使用小數(shù),就要使用浮點(diǎn)類型(floating-point)。C供給了三種浮點(diǎn)類型:float,double以及l(fā)ongdouble。,C標(biāo)準(zhǔn)要求float類型至少要能精確表示到小數(shù)點(diǎn)后6位,并且整數(shù)片面的表示范圍至少要達(dá)成10-37--10+37。float一般是32位的。C標(biāo)準(zhǔn)規(guī)定double類型的整數(shù)片面的最小表示范圍和float一樣,都是10-37到10+37,但是它要求double類型的小數(shù)片面至少要能精確到小數(shù)點(diǎn)后10位。double通常是64位的。C還供給了longdouble類型,目的是供給一種比double更加精確的類型。然而,C標(biāo)準(zhǔn)僅僅規(guī)定longdouble至少要和double一樣精確。2.聲明浮點(diǎn)型變量浮點(diǎn)型變量的聲明和初始化與整型變量一樣。例如:floatf_1,f_2;doubled_1;floatf_3=6.63;longdoubleld_1;3.浮點(diǎn)型常量浮點(diǎn)型常量有多種寫法。其根本形式為:首先寫整數(shù)片面(可以帶符號(hào)),接著寫小數(shù)片面,然后寫e或者E,結(jié)果再寫一個(gè)有符號(hào)整數(shù)。例如:+1.2E+5

1.5e-9

-5.0e10其中e或E被稱為階碼標(biāo)志,e或E后面的有符號(hào)整數(shù)被稱為階碼。階碼代表10的階碼次方。例如:+1.2E+5的值是1.2*105。假設(shè)A為e前面的片面,N是e后面的片面,那么AeN等于A*10N。此外,正號(hào)可以省略不寫。小數(shù)片面也不是必需的,也就是說,5e3也是正確的。階碼標(biāo)志和階碼也可以不寫,如:13.5。小數(shù)點(diǎn)后面,階碼標(biāo)志之前的那片面整數(shù)可以不寫(9.E5),小數(shù)點(diǎn)之前的整數(shù)也可以不寫(.96e-8),但是不能同時(shí)都不寫。例如:56.

.5

3.14

3e6

.6E-8留神:浮點(diǎn)型常量中不能有空格!例如:3.21e-12/*有空格,錯(cuò)!*/3.14e5/*有空格,錯(cuò)!*/浮點(diǎn)型常量默認(rèn)是double類型的。假設(shè)var_f是float類型的變量,假設(shè)有以下語句:var_f=9.0*3.0;那么9.0和3.0都是double類型的常量。它們的乘積也是double型的。在舉行賦值的時(shí)候,這個(gè)乘積被轉(zhuǎn)化成float類型,然后再賦值給var_f。當(dāng)然,我們也可以指定浮點(diǎn)型常量的類型。在浮點(diǎn)型常量后面添上f或者F,編譯器就會(huì)用float類型來處理這個(gè)常量。例如:1.5f,2.1e6F。在后面添上l或者L的話,編譯器會(huì)用longdouble類型來處理這個(gè)常量。例如:4.1l,50.2E5L。最好用大寫L,由于小寫l輕易和數(shù)字1混淆。C99新增了一種表示浮點(diǎn)型常量的格式:使用十六進(jìn)制前綴(0x或0X,0是數(shù)字0,不是字母o),用p或P代替前面所說的e或E,而且階碼代表的是2的階碼次方。例如:0xb.1ep5其中b等于十進(jìn)制中的11,.1e等于1/16加14/256,p5等于25,也就是512。這個(gè)浮點(diǎn)型常量轉(zhuǎn)換成十進(jìn)制就是:11+1/16+14/256*25=5692留神:并非全體編譯器都支持C99新增的這種格式!4.輸出浮點(diǎn)數(shù)格式限定符%f命令printf函數(shù)以十進(jìn)制形式輸出float和double類型的浮點(diǎn)數(shù);%e命令printf函數(shù)以指數(shù)形式輸出float和double類型的浮點(diǎn)數(shù);%a或%A命令printf函數(shù)以C99新增的那種十六進(jìn)制格式輸出,但是并非全體編譯器都支持。假設(shè)您要輸出longdouble類型的浮點(diǎn)數(shù),請(qǐng)用%Lf,%Le,%La,或者%LA。例如:/*showfloat.c–用兩種形式表示浮點(diǎn)數(shù)*/#includeintmainvoidfloatvar_f=5.0;doublevar_df=3.14e2;longdoublevar_ld=6.51e-5;printf%fisequalto%en,var_f,var_f;printf%fisequalto%en,var_df,var_df;printf%Lfisequalto%Len,var_ld,var_ld;return0;輸出如下:5.000000isequalto5.000000e+00314.000000isequalto3.140000e+020.000065isequalto6.510000e-05留神:以上是我在SuseLinux10下使用gcc4.02編譯運(yùn)行得到的輸出。假設(shè)使用Dev-C++4.9.9.2編譯運(yùn)行本程序,那么不能正常輸出var_ld。約莫是由于Dev-C++使用的編譯器gcc中,longdouble是96位的,而它使用函數(shù)庫中的printf函數(shù)卻把longdouble當(dāng)作64位的來處理。5.浮點(diǎn)數(shù)上溢(Overflow)和下溢(Underflow)假設(shè)您的編譯器中,float最大只能達(dá)成3.4e38,假設(shè)有以下語句:floattoobig=3.4E38*100.0f;printf%en,toobig;這必然導(dǎo)致上溢!由于toobig無法表示3.4E38和100.0f的乘積。上溢的后果過去是沒有定義的,不過現(xiàn)在C規(guī)定假設(shè)發(fā)生上溢,那么產(chǎn)生一個(gè)表示無窮大的特殊值。因此,t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論