C語言基礎 指標的作用

2021-08-30 19:16:12 字數 1396 閱讀 6946

---------------start reading--------------

前言對於乙個c語言新手,許多人會有困惑,我們為什麼要用指標,直接用變數定義不是更方便嗎?那麼今天就讓我們來認識一下指標的作用,你便知道指標是多麼的不可或缺了。

首先讓我們來了解一下指標的大小

指標的大小依據平台來決定可能是4個位元組,可能是8個位元組

x86中指標是32個位元組,x64中指標是64個位元組

接下來讓我們來看乙個示例,感受一下指標的必要性

這是乙個交換函式

#includevoid exchange(int a ,int b)

int main()

但他的執行結果卻沒有交換

這說明功能函式並沒有起到交換的功能

讓我們來剖析一下編譯器內部的操作情況

編譯器傳參給功能函式,功能函式中的數字交換卻沒有影響到主函式,這就給我們造成了一種假象,事實上函式的功能並沒有實現。要想實現這個函式的功能,我們要引用指標

#includevoid exchange(int *p1 ,int *p2)

int main()

編譯結果仍然為10,20。這是因為功能函式只交換了p1p2的位址並沒有交換裡面的內容,編譯器執行狀況如圖

再來看乙個功能函式

void exchange(int *p1 ,int *p2)

這個**不能通過編譯,因為int *tmp=*p沒有初始化,沒有給*tmp位址,我們稱這種指標為野指標,懸掛指標,沒有位址訪問權。

那麼想要實現交換函式應該怎樣做才正確呢?

這裡,我們就要提到指標的作用:解決父函式,子函式的值傳遞

子函式的改變,能夠影響父函式,一定要傳遞指標(位址)和解引用,兩個條件缺一不可

正確的方法來啦

void exchange(int *p1 ,int *p2)

交換結果為20,10

小結:指標作用:解決父函式子函式的值傳遞問題

進行值傳遞必須要有傳遞指標和解引用兩個步驟,缺一不可

傳遞時實參為位址,要用&。

---------------end---------------

C語言基礎 指標基礎

最小儲存單位 bit 即 0 1 基本儲存單位 byte 1byte 8bit 注 計算機訪問的資料是byte位數定義變數 分配儲存空間 引用變數 通過變數名引用變數的內容即變數空間的首位址 為常量,即 變數名 專門儲存位址常量的變數型別 變數名所有指標變數均分配4byte的儲存空間 與其他變數相同...

C語言指標基礎

c語言指標 前導程式 1 include2 3 4 5 void change int 6 7 int main 8 9 20 21 22 23 void change int n 24 25 30 31 一 基本知識點 int a 10 int p 定義乙個int型別的指標 p a 指標變數p指向...

C語言指標基礎

c語言指標 前導程式 includevoid change int int main void change int n 一 基本知識點 int a 10 int p 定義乙個int型別的指標 p a 指標變數p指向了變數a p 20 使用指標不通過變數直接修改變數a的值為20 p表示訪問指標變數p...