各位小夥伴學習了指標之後是不是跟我一樣,一臉矇逼這玩意在講啥,我也是經過了很長時間的思考才勉強懂了指標的意思。
指標其實就是一種變數,只是它與普通變數不太一樣,普通變數存放的是乙個實實在在的值,而它存放的卻是乙個值的位址。
計算機要對資料進行處理是需要知道這個資料它在**的,也就是這個資料的位址。而我們平時寫**,例如:設定乙個變數a=2,其實當我們寫了這個a之後,計算機就申請了乙個空間給a了,然後才可以給a賦值,也就是將這個值放在這個空間裡。
而當我們寫了乙個指標之後,計算機也是會申請乙個空間的,而這個空間它不是用來存放具體的資料的,而是這個資料的位址,通過這個位址我們就可以找到相應的資料了。
問題來了,你是不是這樣很多此一舉,將空間放值不就行了嗎?為什麼還要來放位址,然後再通過位址來找到對應的值。但是這樣可以方便我們呼叫資料,特別是將指標作為函式引數的時候。下面我們就通過乙個例子來感受一下吧。
#include
void
swap1
(int x,
int y)
,swap2
(int
*px,
int*py)
,swap3
(int
*px,
int*py)
;int
main()
void
swap1
(int x,
int y)
//將普通的變數作為形參
void
swap2
(int
*px,
int*py)
//將指標作為形參
void
swap3
(int
*px,
int*py)
//將指標作為形參
執行結果如下:
經過變換之後:a=
1,b=
2經過變換之後:a=
2,b=
1經過變換之後:a=
1,b=
2
指標作為函式引數
當指標作為函式引數時,對引數本身的修改並不影響原來的值,比如下面的 刪除鍊錶中第乙個值為item的結點。但是結果卻不正確。void delete node head,int item 這段 的問題是,第乙個引數是指標型別而head null修改的實際上是這個指標的乙個副本,所以不會對原來的指標產生效...
指標作為函式引數
臨近畢業,還有找工作的事情,繁忙之際還是堅持看一下c語言的知識,重點的地方或者不清楚的地方還是要記錄一下。本章以指標作為函式傳參來說一下學習心得,大部分內容源自c語言程式設計課本。首先從c語言中函式引數的傳遞方向說起,大家都知道,c語言中函式引數的傳遞方向是單向的,只能由主調函式的實參傳遞到被調函式...
指標作為函式的引數
一 呼叫getptr後ptr仍然為null程式出錯 include include void getptr char p,int num int main 二 修改程式 include void getptr char p,int num int main 解釋 首先要說明的是char ptr,開始...