關於二級指標

2021-10-04 13:27:48 字數 758 閱讀 2515

問:為什麼要使用二級指標?

答:一級指標只能修改指標指向的內容,不能修改指標自身的值。當我們沒有給一級指標分配記憶體時,直接傳遞指標到函式內,傳遞的只是該指標的拷貝,函式操作完只能在本函式內實現功能,但是在main()函式中,呼叫完函式,並不能實現被呼叫函式的功能。

下面我將用**演示二級指標與一級指標的區別以及二級指標實現的效果

#include

#include

using

namespace std;

void

fun1

(char

*str)

void

fun2

(char

**str)

intmain()

在上面的**中,可以看到fun1()的str是一級指標,fun2中的str是二級指標**的執行結果如下:

這是由於,在fun1中,當呼叫str=new char[5];時str重新指向new char[5],已經和s沒有任何關係了。

在fun2中,因為是二級指標,str指向s,這裡str=new char[5];就是給str分配空間,也就是給s分配空間,改變*str的值,s的值也隨之而改變。

總而言之,fun1中str是s的拷貝,給str分配空間不會改變s;fun2中str是指向s的指標,可以通過改變*str來改變s。

關於二級指標

include include struct stu void func2 struct stu s void main 上述 中有段錯誤。說明 1 在呼叫func2時,系統會重新建立形參指標變數,且值 s。在該函式裡面僅僅是對形參重新賦值,但該形參的改變不會改變傳遞的實參 值傳遞 所以func2執...

關於二級指標的理解

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,可以做左值也可以做右值,對...