C語(yǔ)言讀書筆記_第1頁(yè)
C語(yǔ)言讀書筆記_第2頁(yè)
C語(yǔ)言讀書筆記_第3頁(yè)
C語(yǔ)言讀書筆記_第4頁(yè)
C語(yǔ)言讀書筆記_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

C語(yǔ)言讀書筆記.docx 免費(fèi)下載

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

文檔簡(jiǎn)介

經(jīng)典word整理文檔,僅參考,雙擊此處可刪除頁(yè)眉頁(yè)腳。本資料屬于網(wǎng)絡(luò)整理,如有侵權(quán),請(qǐng)聯(lián)系刪除,謝謝!+C.C%d).PT;t.C(ICC9d.CC,J.0`O@.0如。intint4%_l.、478.a(chǎn)2Va和c和5A.5h3XB.7zc+-*/%)#R><)[B!)~|^&4v=)?:;L,)*&))#Gg."p[])()1QR和iiii+i1iuc7a~5b9bz#BX)w3^F|cc:Y)K①d-Zl&L②o③x④u7B⑤c⑥sm8Jam#CJmn7Ynmn值⑦f8Z6位mn"K⑧e5)⑨gfe2SE8V),n)C&r.c><:b.L^C))128Z2-Tn.&C:s.&a:Q;7g…;7Z;}&t*dmx.)?!VH)|K."w6M.3Bc4P.5p.1[e)(Dx)1/l>)3r))6?;wS.①②1L③:bz④1B⑤4a.-IH.'c%L3O身.:k.2~3N9D1N*].C0aq2IrCc3`U就7Z8J(q1P0YS$n|)W9t(n$z.3DBcc!B.6{!j4w:pcc#L:nM;g5T念0_.R4?f.&m"1:M""<>""<".&e$nE$l's#H`]T`+w)i*E"\0~指針6h^.&w/f,是4?&a*a6@.7cc,如果用指針可以這樣引用,,或定義一個(gè)指針變量,將數(shù)組a的首地址賦給然后用引用。a的地址。:Z數(shù)組名作函數(shù)參數(shù)形參的值發(fā)生變化,則實(shí)參的值也跟著變化。2c指向多維數(shù)組的指針和指針變量以二維數(shù)組為居多。假設(shè)定義了一個(gè)二維數(shù)組,那么a代表整個(gè)二維數(shù)組的首地址,也代表第0行的首地址,同時(shí)也是第0行第0列的元素的首地址。a和代表第0行首地址,和代表第一行的首地址。4d假設(shè)a是一個(gè)數(shù)組的首地址,那么如果a是一維的,代表第I個(gè)元素的地址,如果a是二維的,則代表第I行的首地址。那么第一行第二列的元素地址如何表示呢。我們只要記?。涸诙S數(shù)組中a代表整個(gè)數(shù)組的首地址,代表第I行的首地址,與等價(jià)就行了。只要運(yùn)用熟練了就沒(méi)什么復(fù)雜的了。(h指向由m個(gè)整數(shù)組成的一維數(shù)組的指針變量如:p是一個(gè)指向包含4個(gè)元素的一維數(shù)組,如果p先指向,則指向,即p的增值是以一維數(shù)組的長(zhǎng)度為單位的,這里是,舉個(gè)例子:$n假設(shè)p先指向也就是數(shù)組a就是的首地址即元素9的地址,因?yàn)樵诙xp時(shí),定義一維數(shù)組長(zhǎng)度為,所以就等于加了一個(gè)一維數(shù)組的長(zhǎng)度。.字符串的指針和指向字符串的指針變量1g字符串的表示形式(Ic中字符串有兩種表示形式:一種是數(shù)組,一種是字符指針其實(shí)指針形式也是在內(nèi)存中開(kāi)辟了一個(gè)數(shù)組,只不過(guò)數(shù)組的首地址存放在字符指針變量中,千萬(wàn)不要認(rèn)為是一個(gè)字符串變量。字符串指針作函數(shù)參數(shù)(r實(shí)際上字符串指針就是數(shù)組的首地址。字符指針變量與字符數(shù)組的區(qū)別①字符數(shù)組由若干元素組成,每個(gè)元素存放一個(gè)字符,而字符指針變量只存放字符串的首地址,不是整個(gè)字符串$G②對(duì)數(shù)組初始化要用,對(duì)指針變量不用。+u③對(duì)字符數(shù)組賦值,只能對(duì)各個(gè)元素賦值,不能象下面這樣X(jué)6Q對(duì)指針變量可以,%i9H)~g注意:此時(shí)賦給的不是字符,而是字符串首地址。④數(shù)組在定義和編譯時(shí)分配內(nèi)存單元,而指針變量定義后最好將其初始化,否則指針變量的值會(huì)指向一個(gè)不確定的內(nèi)存段,將會(huì)破壞程序。如:a這種方法是很危險(xiǎn)的,應(yīng)該這樣:+Ua=9oa這樣字符指針就指向了一個(gè)確定的內(nèi)存段D⑤:U.函數(shù)的指針和指向函數(shù)的指針變量一個(gè)函數(shù)在編譯時(shí)被分配一個(gè)入口地址,這個(gè)入口地址就稱為函數(shù)的指針。函數(shù)名代表函過(guò)該指針變量調(diào)用函數(shù)。如:假設(shè)有一個(gè)求兩者較大的函數(shù)如下inty當(dāng)我們調(diào)用這個(gè)函數(shù)時(shí)可以這樣:b這是通常調(diào)用方法,其實(shí)我們可以定義一個(gè)函數(shù)指針,通過(guò)指針來(lái)調(diào)用,如:注意指向函數(shù)指針變量的定義形式此句就是將函數(shù)的入口地址賦給函數(shù)指針變量pb.X有些朋友可能對(duì)不大理解,其實(shí)它的意思就是定義一個(gè)指向函數(shù)的指針變p不入口地址賦給它,它就指向哪個(gè)函數(shù)。但要注意,p不能象指向變量的指針變量一樣進(jìn)行等無(wú)意義的操作。既然p的用途之一就是作為函數(shù)參數(shù)傳遞到其它函數(shù)。這也1p.返回指針值的函數(shù)$B我們知道,一個(gè)函數(shù)可以帶回一個(gè)整型值、字符值、實(shí)型值等,函數(shù)還可以帶回一個(gè)指針型的數(shù)據(jù),即地址。這種函數(shù)的定義形式如下:類型標(biāo)識(shí)符函數(shù)名參數(shù)表)如:返回一個(gè)指向整型的指針適當(dāng)?shù)闹羔樒漕愋蛻?yīng)為函數(shù)返回指針?biāo)赶虻念愋?。難于理解的時(shí)候,就把它暫時(shí)當(dāng)做整型來(lái)看,就好理解多了2].指針數(shù)組3w數(shù)組名數(shù)組長(zhǎng)度]*p[4],千萬(wàn)不要寫成(*p)[4],這是指向一維數(shù)組的指針變量。指針數(shù)組多用于存放若干個(gè)字符串的首地址,注意一點(diǎn),在定義指針數(shù)組時(shí)初始化,如下:!XN.指向指針的指針如:*:`.指針數(shù)組作函數(shù)的參數(shù)-\函數(shù)形式為)qJ函數(shù)的參數(shù)是從命令行得到的,指命令行參數(shù)個(gè)數(shù),注意命令名也算一個(gè)參數(shù),命令行參數(shù)都是字符串,他們的首地址構(gòu)成一個(gè)指針數(shù)函數(shù)的形參用和只是一個(gè)習(xí)慣,也可以定義成別的名字。.指針小結(jié)$J有關(guān)指針的數(shù)據(jù)類型3]定義含義定義一個(gè)整型變量IP為指向整型數(shù)據(jù)的指針變量定義整型數(shù)組,它有n個(gè)元素定義指針數(shù)組,它有n個(gè)指向整型的指針元素)VP為指向含有n個(gè)元素的一維數(shù)組的指針變量F為返回整型值的函數(shù)6kP為返回值為指針的函數(shù),該指針指向整型數(shù)據(jù)P為指向函數(shù)的指針,該函數(shù)返回一個(gè)整型值定義一個(gè)指向指針的指針變量.da'D(Zw新增了一種的時(shí)候再?gòu)?qiáng)制轉(zhuǎn)換類型。如:'V+d=(n也可以將一個(gè)函數(shù)定義成型,如:-`表示函數(shù)返回一個(gè)地址,它指向空類型,如果需要用到此地址,也要對(duì)其強(qiáng)制轉(zhuǎn)換。如(假設(shè)為+{指針應(yīng)該說(shuō)是c語(yǔ)言中比較重要的概念,也是c語(yǔ)言的精華,它有很多優(yōu)點(diǎn),但用不好也會(huì)帶來(lái)嚴(yán)重性的錯(cuò)誤,這就需要我們多用,多練,慢慢的積累經(jīng)驗(yàn)。(A?&Y第十章結(jié)構(gòu)體與共用體.定義結(jié)構(gòu)體定義的一般形式:3JO結(jié)構(gòu)體名$?成員列表定義一個(gè)結(jié)構(gòu)體變量可以這樣定義:結(jié)構(gòu)體名結(jié)構(gòu)體變量名4M.結(jié)構(gòu)體變量的引用在引用結(jié)構(gòu)體變量時(shí)應(yīng)注意以下規(guī)則:C允許將一個(gè)結(jié)構(gòu)體變量直接賦值給另一個(gè)具有相同結(jié)構(gòu)的結(jié)構(gòu)體變量。.結(jié)構(gòu)體變量的初始化如:v/e.結(jié)構(gòu)體數(shù)組O定義了一個(gè)數(shù)組,其元素為類型,數(shù)組有4個(gè)元素。注意數(shù)組各元素在內(nèi)存中是連續(xù)存放的。量的個(gè)數(shù)來(lái)確定數(shù)組元素的個(gè)數(shù)。9T.指向結(jié)構(gòu)體變量的指針S注意將結(jié)構(gòu)體變量的首地址賦給指針變量的形式m//要加取地址符而指向函數(shù)和指向字符串的指針不用;|c在對(duì)引用結(jié)構(gòu)體變量中的成員時(shí),有三種方式:p;e9HN%f0M.指向結(jié)構(gòu)體數(shù)組的指針*P&l9^則p為指向結(jié)構(gòu)體數(shù)組的指針變量。這里應(yīng)注意p指向則指向Pp是不對(duì)的。.用指向結(jié)構(gòu)體的指針作函數(shù)參數(shù)"d雖然C允許用整個(gè)結(jié)構(gòu)體作為函數(shù)參數(shù),但要將全部成員值一個(gè)一個(gè)傳遞,開(kāi)銷大。所以用指針作參數(shù),能提高運(yùn)行效率。2oP)G用整個(gè)結(jié)構(gòu)體作為參數(shù)調(diào)用形式:!Lp$R而且被調(diào)函數(shù)中也要定義成結(jié)構(gòu)體變量;{tS用指針作參數(shù)調(diào)用形式:被調(diào)函數(shù)中定義成指針變量,:a.用指針處理鏈表用來(lái)存放整個(gè)鏈表的首地址。鏈表的定義形式如下u…/O用來(lái)存放下一節(jié)點(diǎn)的地址。如何進(jìn)行動(dòng)態(tài)的開(kāi)辟和釋放存儲(chǔ)單元呢)b在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)開(kāi)辟一個(gè)長(zhǎng)度為失敗返回*v在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)開(kāi)辟n個(gè)長(zhǎng)度為失敗返回9jq釋放由指向的內(nèi)存區(qū)。是最近調(diào)用一次調(diào)用和時(shí)返回的值。上面函數(shù)中,n和為整型,為字符指針。.共用體6y定義形式:共用體名9A4U成員列表變量列表0Wq長(zhǎng)度為最長(zhǎng)的成員的長(zhǎng)度。)z共用體類型數(shù)據(jù)的特點(diǎn):$F同一個(gè)內(nèi)存段可以存放幾種不同類型的成員共用體變量中起作用的成員是最后一次存放的成員4a不能對(duì)共用體變量名賦值,不能在定義時(shí)初始化。不能把共用體變量作為函數(shù)參數(shù)'C共用體類型可以出現(xiàn)在結(jié)構(gòu)體定義中,反之也可,也可以定義共用體數(shù)組)N]A另外,結(jié)構(gòu)體名可以作為參數(shù),而共用體名不可以N這兩中數(shù)據(jù)結(jié)構(gòu)在不同場(chǎng)合中各有所用。.枚舉類型,@定義形式如下:舉個(gè)例子5rG//定義枚舉變量和被定義成枚舉類型,他們的值只能為到之一。也可以直接定義枚舉變量,這一點(diǎn)與結(jié)構(gòu)體相L注意:枚舉元素是作為常量存在的,他們是有值的c如:上面的定義中,的值為的值為1如:它相當(dāng)于把賦給了7W11.用定義類型的作用就是能夠讓你定義一個(gè)自己喜歡的數(shù)據(jù)類型名來(lái)代替已有的數(shù)據(jù)類型名。如:5SN那么我就可以用來(lái)定義整型變量了。作用和一樣。0Of用于結(jié)構(gòu)體定義,如:4f/s8X)\等等#X\用有利于程序的通用與移植。e$G第十一章位運(yùn)算!X概述所謂位運(yùn)算是指進(jìn)行二進(jìn)制位的運(yùn)算。在系統(tǒng)軟件中,常要處理二進(jìn)制位的問(wèn)y-Ac提供的位運(yùn)算符有:8L&按位與/u|按位或^按位異或^e~取反%fQ左移右移對(duì)于將一個(gè)單元清零、取一個(gè)數(shù)中的某些指定位以及保留指定位有很大用途d常被用來(lái)將一個(gè)數(shù)的某些位置。判斷兩個(gè)位值,不同為,相同為。常用來(lái)使特定位翻轉(zhuǎn)等。&A~常用來(lái)配合其它位運(yùn)算符使用的,常用來(lái)設(shè)置屏蔽字;H將一個(gè)數(shù)的各二進(jìn)制位全部左移,高位左移后溢出,舍棄不起作用。左移一位相當(dāng)于該數(shù)乘,左移n位相當(dāng)于乘。左移比乘法運(yùn)算要快的多。右移時(shí),要注意符號(hào)問(wèn)題。對(duì)無(wú)符號(hào)數(shù),右移時(shí)左邊高位移原來(lái)符號(hào)位為;如果符號(hào)位為取決于系統(tǒng)。移入0的稱為邏輯右移,移入1的稱為算數(shù)右移。位段員。如:*U3m(Mi1I其中分別占2位。I為整型,占4個(gè)字節(jié)。對(duì)于位段成員的引用如下:8P=等,但要注意賦值時(shí),不要超出位段定義的范圍。如位段成2位,最大值為,即,所以就會(huì)取5的兩個(gè)低位進(jìn)行賦值,就得不到想要的值了。關(guān)于位段的定義和引用,有幾點(diǎn)重要說(shuō)明p①若某一個(gè)段要從另一個(gè)字開(kāi)始存放,可以定義{k另一單元)使用長(zhǎng)度為0的位段,作用就是使下一個(gè)位段從下一個(gè)存儲(chǔ)單元開(kāi)始存放(7[②一個(gè)位段必須存放在用一個(gè)存儲(chǔ)單元中,不能跨兩個(gè)單元。③可以定義無(wú)名位段。如:這兩位空間不用4^)d④位段的長(zhǎng)度不能大于存儲(chǔ)單元的長(zhǎng)度,也不能定義位段數(shù)組L2{!|第十二章文件0?概述c語(yǔ)言將文件看成一個(gè)字符的序列,分為文件(文本文件)和二進(jìn)制文件。即一個(gè)c文件就是一個(gè)字節(jié)流或二進(jìn)制流。0~文件每一個(gè)字節(jié)放一個(gè)碼,代表一個(gè)字符,輸出與字符一一對(duì)應(yīng),便于逐個(gè)處c對(duì)文件的據(jù)都要先經(jīng)過(guò)緩沖區(qū),待緩沖區(qū)充滿后,才集中發(fā)送k文件夾類型指針.ag義的,取名為,在中定義。6z定義了一個(gè)文件指針變量,以后對(duì)文件的操作都是通過(guò)進(jìn)行的。文件的打開(kāi)與關(guān)閉在對(duì)文件讀寫之前,要先打開(kāi)文件。打開(kāi)文件的函數(shù)為:,調(diào)用方式為:!a使用文件方式/]失敗返回一個(gè)空指針樣就和打開(kāi)的文件聯(lián)系在一起了?;蛘哒f(shuō)p指向了,`W文件使用方式:,具體含義要記住。x文件的關(guān)閉為了防止數(shù)據(jù)丟失,程序結(jié)束前,務(wù)必將打開(kāi)的文件關(guān)閉,即將文件指針與文件脫鉤。用文件指針文件指針。成功返回,失敗返回非#M文件的讀寫%X和1L將字符寫入該字符,失敗返回在中定義為符號(hào)常量。從指定文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開(kāi)的。調(diào)用形式為從指向的文件讀入一個(gè)字符賦給,當(dāng)文件結(jié)束時(shí),返回一個(gè),我們可以用函數(shù)1。這個(gè)函數(shù)適用于文本文件和二進(jìn)制文件。)x和函數(shù)X可以讀寫一組數(shù)據(jù)。調(diào)用形式如下:{為一個(gè)指針,對(duì)來(lái)講,是指從文件讀出數(shù)據(jù)的存放地址,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論