C語言讀書筆記_第1頁
C語言讀書筆記_第2頁
C語言讀書筆記_第3頁
C語言讀書筆記_第4頁
C語言讀書筆記_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

C語言讀書筆記.docx 免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論