2022年1月8日 星期六

[C++] *&用法 , *與&同時使用

因為看到CLI語法使用^&,因此回過頭來查C++的*&用法。

找了幾篇文章,整理出一個小範例來說明。

參考文章:

[C++基础]019_指针和引用(int*、int&、int*&、int&*、int**)

c++中 *& 和 **& 符号作用说明

c++中“ * ”,“&”可以一起用吗?如“ void fun(int *& a,int *&b) ”?

最後一篇第一個回答得解釋可以參考一下

"引用传递和地址值传递都可以解决值传递带来的函数内部对数据的改变失效的问题,而有时候我们需要在函数内部对一个地址值进行改变,也就是指针进行改变,此时就要用到双指针和指针的引用,即地址值的指针或者地址值的引用,也就是void fun(int *& a,int *&b)。"

我自己的範例是這樣

完整範例:Pointer Reference


結論是:

p1一樣還是NULL

p2會有物件也有值(5),   

p3和p4是相同結果,都會被賦值為5,

但p2不同的是,他可以在function內部才被建立物件,p2被傳入之前是NULL,

這就是*&的最大功用,也呼應上面那篇文章的說明,

"有时候我们需要在函数内部对一个地址值进行改变,也就是指针进行改变,此时就要用到双指针和指针的引用,即地址值的指针或者地址值的引用,也就是void fun(int *& a,int *&b)。"

沒有留言:

張貼留言

社會新鮮人如何投資?

我的觀點是,在 沒有很多 本錢 的情況下, 別寄望每個月幾千元放到股票或者最近很夯的高股息ETF就能讓你致富, 先投資自己,讓自己的本業收入提高吧。