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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

返回函数局部变量的指针和引用

發布時間:2025/6/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 返回函数局部变量的指针和引用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

返回函數局部變量的指針和引用是不允許的,容易造成野指針。不管是通過返回值或者出參返回局部變量的指針都是不允許的。

但針對各種情況,可以具體研究一下返回函數指針和引用的異常情況。

?

例子1:

#include <iostream>
using namespace std;


void ChangePoint(int **p2)//入參類型為指向指針的指針。
{
?int num = 8;
?*p2 = &num;/
?p3 = ChangePoint3();
?ChangePoint(&p2);
?cout << *p1 <<' '<< a << ' '<<*p2 << ' '<< *p3;
?return 0;
}

不能返回局部變量的引用給一個引用變量。但是如果返回引用給一個相關的非引用變量的話是可以的。

例子2:

#include <iostream>

using namespace std;

int& fun()
{

?int i = 100;

?return i;

}

void test()
{
?int i = 0;
}

int main()
{
//?int& a = fun();//返回的是局部變量i的引用,即地址,有問題。相當于int &a = i;?
?int a=fun();//返回的是局部變量i的值,沒有問題,相當于int a = i;

//?test(); //此處由于fun后沒有其他代碼,所以輸出值沒問題,若將test函數打開,則a的值會有問題。

?cout << a << endl;

?return 0;
}

可以參考:

http://topic.csdn.net/u/20120729/11/823C8AE6-691D-4BAB-A874-971836CF00C4.html

總結

以上是生活随笔為你收集整理的返回函数局部变量的指针和引用的全部內容,希望文章能夠幫你解決所遇到的問題。

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