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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

还是引用

發布時間:2023/11/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 还是引用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 #include <iostream> 2 using namespace std; 3 4 int getA1() 5 { 6 int a; 7 a = 10; 8 return a; //復制一份交給主函數相關變量,然后自己消失,只是返回一個值,可能存在于除內存外的其他地方. 9 } 10 11 int& getA2() 12 { 13 int a; 14 a = 10; 15 return a; //將自己將給主函數相關變量,然后自己消失,返回的是變量本身,再底層的講,返回的是該變量的內存首地址.只是在接受方知道這里是返回引用的話,會自動加*號取值,當然這都是C++編譯器做的. 16 } 17 18 int main() 19 { 20 int a1 = 0; 21 int a2 = 0; 22 23 a1 = getA1(); //得到的是復制體,返回的只是一個值.返回不能當左值. 正體在函數體返回(右大括號)的時候就銷毀了,復制體由=號操作賦值給了a1之后,自我銷毀 24 a2 = getA2(); //得到的是getA2本身,但因為a2本身開辟了內存,所以能夠保存值.返回可以當左值.沒有復制體,a2得到的是getA2正體,在=號操作賦值給了a2之后,自我銷毀 25 26 int &a3 = getA2(); //用a3去引用getA2返回的變量本身. 27 28 printf("a1:%d\n", a1); 29 printf("a2:%d\n", a2); 30 printf("a3:%d\n", a3); 31 printf("123"); 32 printf("a2:%d\n", a2); 33 34 cin.get(); 35 return 0; 36 } 37 38 int *j() 39 { 40 static int a = 10; 41 a++; 42 return &a; 43 } 44 45 int main11() 46 { 47 j(); 48 j(); 49 //int *p = j(); 50 51 printf("%d\n", *(j())); //輸出13 52 return 0; 53 }




const& 相當于 int const *const a
&相當于 int *const a

當使用常量(字面量)對const引用進行初始化時,C++編譯器會為常量值分配空間,并將引用名作為這段空間的別名

?

?

轉載于:https://www.cnblogs.com/c-slmax/p/5179412.html

總結

以上是生活随笔為你收集整理的还是引用的全部內容,希望文章能夠幫你解決所遇到的問題。

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