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

下載本文檔

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

文檔簡介

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

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

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

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

1.5e-9

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

.5

3.14

3e6

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

溫馨提示

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

評論

0/150

提交評論