日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++】33.二级指针 **p

發布時間:2025/3/21 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++】33.二级指针 **p 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考原文: https://blog.csdn.net/liangyihuai/article/details/77094996


@zhz
對一級指針取地址,就是二級指針

char *p1; 定義 char **p2; p2=&p1; char*p3=(char*)malloc(100);*p2=p3; 賦值

p2是一個二級指針,*p2(解引用)是p2指向的位置的值(該值是一個指針),即*p2也是一個指針。再對*p2指向的地址進行解引用,即**p2,值是p2指向的位置保存的指針所指向位置的值!


@轉載
通過定義二級指針int **p;可知:

  • p是個二級指針,即指針的指針,該指針p指向的地址A中存放的內容是一個地址(*p);

  • *p是指向另一個地址B的指針。直接給*p賦值,可以改變指針*p的值;

  • **p是*p指向的地址中存放的值;


以下給出一個例子:

string *pointer1 = NULL; string **pointer2 = &pointer1;string str = "hello";/* if (*pointer2 == pointer1) cout << "*pointer2 == pointer1" << endl; else cout << "*pointer2 != pointer1" << endl; */*pointer2 = &str;cout << *pointer1 << endl;//執行結果 //*pointer2 == pointer1 //hello

上面例子中:
pointer2 是個二級指針,*pointer2 也是個指針,代表pointer1在內存中的地址,即*pointer2 等價于&pointer1;

把str的內存地址(&str)賦值給*pointer2 后,指針pointer1的內存地址(&pointer1)就和str的內存地址(&str)一樣了。 指針pointer1和str的內存地址一樣,那么他們內存地址中的值*pointer1就和str的內容"hello"一樣了。

總結

以上是生活随笔為你收集整理的【C++】33.二级指针 **p的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。