C語言入門之指針用法_第1頁
C語言入門之指針用法_第2頁
C語言入門之指針用法_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——C語言入門之指針用法C語言入門之指針用法

本文針對C語言初學者細致陳述了指針的用法,并配以實例舉行說明。下面是我整理的,接待大家閱讀!更多相關信息請關注相關欄目!

對于C語言初學者來說,需要明白指針是啥?重點就在一個“指”上。指啥?指的地址。啥地址?內存的地址。

上面說明就是指針的本質了。

這里再細致解釋下。數(shù)據(jù)存起來是要存在內存里面的,就是在內存里圈出一塊地,在這塊地里放想放的東西。變量關切的是這塊地里放的東西,并不關切它在內存的哪里圈的地;而指針那么關切這塊地在內存的哪個地方,并不關切這塊地多大,里面存了什么東西。

下面就是根本用法:

inta,b,c;doublef;int*pt_a=a,*pt_b=b,*pt_c=c;double*pt_f=f;

上面兩行聲領略三個int類型的變量a,b,c,一個double類型的變量f。下面就是指針的用法了,聲明變量的時候只需要在變量前面加上“*”這個符號就說領略這個變量是指針,而前面的“int”說明指針指向的內存里面存放著int類型的變量。

變量和指針的聲明也可以放到一起:

inta,b,c;doublef;intother,*pt_a=a,*pt_b=b,*pt_c=c;doublex=0,*pt_f=f;

然后就是新的運算符——“”了。是不是很熟諳?沒錯,這個就是scanf里面的那個“”。它是取地址符,即用在變量前面使用這個運算符,能夠獲得這個變量在內存里面的地址。由此就可以解釋scanf雙引號后面為何要使用“”了,就是將前面按照格式讀進來的數(shù)據(jù),按照后面給出的地址直接填進內存里,所以scanf雙引號后面供給的參數(shù)實質上并不是夢想賦值的變量,而是夢想保存數(shù)據(jù)的地址。所以,例如假設有int類型的變量a,同時有指向它的指針pt,那么下面兩句是等效的:

scanf%d,a;scanf%d,pt;

回到指針,接下來就是修改指針指向變量的值了,怎么弄呢?下面就是例子:

inta;int*pt=a;*pt=123;//該語句等同于a=123;

不要把“*”給忘了哈。

至于這個“*”符號,可以這么理解:需要用到指針指向的內容時,加上“*”,此時它等同于一個變量;只是需要指針的地址時,不需要加“*”,此時它代表內存的.地址。

而指針也可以變更它指向的地址:

inta,b,c;int*pt_a=a,*pt_b=b;pt_b=c;pt_a=pt_b;

好多教材都在強調野指針的問題,什么叫野指針?呃……可以叫做“撒野”的指針。什么意思呢?舉個例子,假設聲領略一個指針pt,而沒讓他指向任何變量,那么它指向哪里呢?答案是:不確定,整個內存哪里都有可能被它指到。假設此時修改它指向的內容,而它恰好指向了系統(tǒng)某個關鍵的進程……那后果就對比嚴重了。所以指針用之前確定讓它指示東西。假設想讓它什么都不指,怎么辦?很簡樸,指向NULL即可。

這就是指針了??赡芸赐旰枚嗳藭X得本來用變量你又加了個指針

溫馨提示

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

評論

0/150

提交評論