C (一級指標 二級指標,指標引用)作為函式引數

2021-10-23 13:31:27 字數 602 閱讀 6201

指標作為函式引數,傳進去的只是乙個拷貝的指標,所以無法通過傳進去的引數在函式內修改函式外面作為引數的該變數。

傳變數,傳的是變數的拷貝,在函式裡面修改該引數,改變的只是函式裡面的區域性變數。

傳一級指標,傳的是乙個指標的拷貝,在函式修改該指標所儲存的位址(修改指標的指向),修改的也只是區域性變數。但是可以通過指標來修改指標所指向的記憶體的資料。

傳二級指標,傳的是乙個指向指標的指標的拷貝,在函式裡面修改該指向指標的指標所儲存的位址(修改指向指標的指標的指向),修改的還是區域性變數。但是可以通過二級指標指向一級指標來修改一級指標的指向。

#include

using

namespace std;

voida(

int* p)

voidb(

int*

* p)

void

main()

執行結果:

一級指標,無法修改指標本身的指向,但是通過二級指標函式內訪問一級指標,可以修改一級指標的指向。

一級指標二級指標

例如 int p null int代表指標p指向的資料型別是int型,代表這是乙個指標變數,1 指標變數儲存的內容是指向的變數的位址 2 在使用sizeof判斷指標的位元組數時,在32位機器上為4個位元組,在64位機器上為了相容,仍然是四個位元組大小 3 小知識點,不同型別的指標除了指向的變數資料型...

一級指標與二級指標

如下圖所示,整型指標xptr指向變數x的位址。原始碼 include int main 實現方法一如下圖所示,先為二級整型指標ptr分配空間,然後賦值。原始碼 include include int main printf n return 0 執行結果 實現方法二 如下圖所示,先為二級整型指標pt...

一級指標和二級指標

通常用作函式的輸入引數,因為一級指標作為函式引數,在呼叫的時候,實參和形參是不同的記憶體空間,只是,這個記憶體空間存放的指標指向的是同一塊位址,所以形參在函式執行中可以訪問實參指向的記憶體空間,但是形參的指向的改變並不能影響實參。總結一句話 一級指標做函式引數,在函式內做形參做重新指向並 不會影響實...