二級指標理解

2022-05-01 00:54:09 字數 804 閱讀 7882

1、先看一反例:

//目的:通過函式mymalloc改變指標p的值

#include

#include

void mymalloc(char *s) //

我想在函式中分配記憶體,再返回

void

main()

以上例子中,p實際還是null,p的值沒有改變,為什麼?

答:我們的目的就是要改變指標p的值,因為p本身就是指標,傳如mymalloc函式的實際上就是p的副本p1(副本改變,原來的p是不會改變),傳入mymalloc函式的副本p1會改變了,p會改變嗎?顯然不會,跳出mymalloc函式後p1就被釋放,p沒有發生任何變化,所以p的值仍然是null。

2、請看下面這個可以改變p的值得程式:

//目的:通過函式mymalloc改變指標p的值

#include#include

void mymalloc(char **s) //

我想在函式中分配記憶體,再返回

void

main()

3、用(void**)就更具有一般性了,哈哈

//目的:通過函式mymalloc改變指標p的值

#include#include

void mymalloc(void **s) //

我想在函式中分配記憶體,再返回

void

main()

理解二級指標

我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 1 2 inti 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 1 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,...

二級指標的理解

今天看到一段關於二級指標的使用,如下 include int main 執行後的輸出結果如下 a 0xbfe9f968 b 0xbfe9f964 c 0xbfe9f964 c 0xbfe9f964 c 0xbfe9f968 c 12按照輸出理解,首先 c先寫成 c 的形式,c先指向b,然後此表示式可...

關於二級指標的理解

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