關於二級指標

2021-06-28 23:27:59 字數 674 閱讀 2598

#include #include struct stu;

void func2(struct stu *s)

void main()

上述**中有段錯誤。

說明:1、在呼叫func2時,系統會重新建立形參指標變數,且值=s。在該函式裡面僅僅是對形參重新賦值,但該形參的改變不會改變傳遞的實參(值傳遞)。所以func2執行完後,s還是乙個執行非法空間的指標。所以會有段錯誤。

2、我們常見的指標傳遞方式通常是傳遞乙個指標,然後在呼叫函式裡面對該指標所指向的變數進行操作(指標傳遞)。

3、如何在本例中使用二級指標呢 ?

void func2(struct stu * *s) //傳入二級指標

void main()

struct node *a = null;

struct node **b = &a;

(*b)->x = a;//其指向的一級指標必須得有指向才行,這個一級指向為null,對齊引用是錯誤的。(二級指標作為形參的時候 經常容易犯這錯誤)

(*b)->y = b;

(*b)->z = c;

關於二級指標

問 為什麼要使用二級指標?答 一級指標只能修改指標指向的內容,不能修改指標自身的值。當我們沒有給一級指標分配記憶體時,直接傳遞指標到函式內,傳遞的只是該指標的拷貝,函式操作完只能在本函式內實現功能,但是在main 函式中,呼叫完函式,並不能實現被呼叫函式的功能。下面我將用 演示二級指標與一級指標的區...

關於二級指標的理解

include void main charp int i for i 0 i 4 i 首先我們要明白,如果定義乙個字串陣列a 4 其實就是乙個一級指標,放的是第乙個字元的首位址,a 1放的就是第二個字元的首位址。這個也不難理解,同理我們知道n是乙個二維指標n裡面放的是a 0 的位址,a 0 放的是...

C語言(關於二級指標)

在學資料結構鍊錶的初始化時碰到了二級指標,一開始十分陌生這種用法不知其意思,經過初步學習了解了其大意。一級指標與二級指標的意義 一級指標 int x 1 int a 定義了乙個指向int 型變數的指標a a x 1.a即指 x 的位址 2.a其實就是a指向的內容,a即為x,可以做左值也可以做右值,對...