C語言對指標的初步理解1 親身體會

2021-09-13 13:45:30 字數 1570 閱讀 9923

因為最近在看一些c語言的書,看到有很多人剛開始接觸c語言時對於指標問題比較頭疼,於是就準備出一期關於c語言指標的自我理解,希望對接觸c語言的有一點幫助,在講指標之前我想告訴大家在c語言中的資料結構這麼一說,我們所了解的c語言除了支援多種基本資料型別外,還支援豐富的派生型別和自定義型別,簡要的可以從資料型別分為三大類,分別為:派生型別,基本型別,自定義型別。派生型別又包括了:陣列,函式,指標。基本型別包括:整型,浮點型,字元型。自定義型別包括:結構體,共同體,列舉。我們所講的指標便是一種派生資料型別。它是從c語言的一種基本資料型別建立出來的。我們首先要知道指標是以記憶體位址作為值的,由於記憶體位址表示表示在計算機中儲存程式指令和資料的位置,因而可以用指標來直接訪問和操作儲存在記憶體中的資料,這也是c語言指標的強大之處,

當我們宣告乙個變數時,系統是在記憶體中分配適當的儲存空間,以儲存該變數的值,我們可以舉乙個簡單的例子,int a=20;我們宣告乙個a值,該語句傳達給計算機便是為整形變數a分配乙個儲存空間,並把數值20存放在其中。同時系統分配的空間會有乙個位址,假設位址的編號為5000,如果我們現在輸出這個值,我們可以通過兩種途徑來訪問它,可以使用變數名a可以使用位址5000,其中由於位址也只是編號因此我們又可以把它賦值給變數。這樣的儲存記憶體位址的變數就被稱為是「指標變數了「,好現在我們再來理一下關係,指標變數只是用來儲存位址的變數,而位址則是另乙個變數在記憶體中的儲存位置。現在假如我們把a的位址賦給乙個變數p,我們在這裡假設p的位址是5200,那麼我們就可以稱p為a的指標變數了,同樣我們可以通過p的值來訪問a的值,我們也可以說變數p」指向「變數a,因為當我們執行程式時,指標的值都會發生變化,而我們所要注意和關心的是兩個變數所具有的關係(這裡的意思注意變數p和變數a的關係),後面我們要做的便是區別三個基本概念,指標便建立在這三個基本概念之上的,分別是:指標常量,指標值,指標變數,想要學好指標理解他們是必不可少的,我們把計算機的記憶體位址稱為是指標常量,要注意我們不能修改它們,只能用來儲存資料值,它就像已經刻好的房間號一樣;同樣我們不能直接儲存位址的值,只能通過利用位址運算子(&),通過儲存在位址中的變數來獲得位址的值,可能剛接觸指標的人對我剛剛說的話有一點蒙蔽,其實我以前也是一樣,這樣把我舉乙個小例子解釋一下,可能你就恍然大悟了,我們在學習c語言時都接觸過scanf函式吧,像這樣scanf("%d",&a);這便是在告訴程式我要讀取乙個整形,放在變數a裡面,問題來了我要怎麼放到a裡面呢?我們可以這樣想當我們宣告變數a時程式已經給我們分配一塊儲存空間,就相當於給我們了乙個房間的門牌號意思是這個房間歸你使用了,我們又怎樣找到房間號呢?正如我們不能直接儲存位址的值一樣,我們要通過&來找到我們要用的房間,房間的使用者又是誰呢?很明顯是a,我現在告訴程式&a使用者a的房間號(也就是a所用的位址)我要把讀取的整形資料放到a的房間裡,這樣你們能理解了吧,是不是感覺突然懂了,好了我們回到上面我們利用位址運算子(&),通過儲存在位址中的變數來獲得位址的值,這樣獲得的值稱為指標值。指標值(簡單來說就是變數的位址)在程式每次執行時都會發生變化;一旦我們有了指標值,就可以把它儲存在另乙個變數中。包括指標的變數就稱為指標變數。

我說如果你想學好指標,那麼上面的東西你必須弄的十分清楚,在下面更新的內容中我將會提到關於c語言指標的一系列知識,希望你們能跟我一起學習。還有一句話送給你們:」基礎不牢,地動山搖「。

C語言 之 指標初步理解

c語言之指標 指標是c語言的靈魂所在,也為程式設計師提供了一種訪問變數位址的方式。那啥是指標?指標就是變數的位址,說白了就是這個變數儲存在哪個位置,你可以通過指標檢視,所以學習指標記住一句話 指標就是位址。例如 int number int pointer a 這是一種把變數位址賦給指標的方法 第二...

C語言 對於指標陣列與多重指標的理解

人之所以痛苦,那是因為你在成長。magic guo 1.指標陣列 陣列是存放一批同型別資料的容器,其中的元素可以是整型 浮點型 字元,也可以是指標型等,存放記憶體位址的陣列叫做指標陣列,就像返回指標型別的函式一樣 被稱為指標函式 定義指標陣列的方式 型別名 陣列名 陣列長度 例如 int num 4...

C語言對const的理解

教學過程中,很多同學對於const這個關鍵字的理解存在很大的誤解。現在總結下對這個關鍵字理解上的誤區,希望在以後的程式設計中,能夠靈活使用const這個關鍵字。1 const修飾的變數是常量還是變數 對於這個問題,很多同學認為const修飾的變數是不能改變,結果就誤認為該變數變成了常量。那麼對於co...