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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++ 对引用的理解4

發(fā)布時(shí)間:2023/11/30 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 对引用的理解4 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 引用的注意事項(xiàng)
  • // 引用注意事項(xiàng), 不能返回局部變量的引用 int & test3() { //因?yàn)榫植孔兞砍隽撕瘮?shù)體外 就會(huì)被銷毀int a = 10;return a; }// 引用注意事項(xiàng), 返回值如果是引用, 那么函數(shù)可以作為左值進(jìn)行運(yùn)算 int & test4() {static int a = 100;return a; } int main() { test4() = 300;cout << test4() << endl; // 輸出300return 0; }
  • 指針的使用
  • struct Person {int age;int id;string name; };void allocSpace(Person **p) { // Person **p = &per;*p = (Person *)malloc(sizeof(Person)); // *p 就是 per這個(gè) 指針變量, 指向了(就是存儲(chǔ)了對(duì)象的堆內(nèi)存地址) Person結(jié)構(gòu)體對(duì)象內(nèi)存(*p)->age = 10;(*p)->id = 1; } int main() { Person *per = NULL; // 這時(shí)候 per 是一個(gè)指針變量(可以指向Person結(jié)構(gòu)體的指針變量)allocSpace(&per); // 對(duì)這個(gè) per 指針變量取地址運(yùn)算&, allocSpace函數(shù)形參是為 Person數(shù)據(jù)類型的 二級(jí)指針cout << per->age << endl;cout << per->id << endl;free(per);return 0; } // 這里考慮為什么函數(shù)參數(shù)用二級(jí)指針, 這和交換變量的內(nèi)容時(shí)的原理是一樣的。 // int a=3;b=5; 用函數(shù)交換ab的值,需要傳遞ab的地址,同理這里Person *per = NULL; 如果讓per能關(guān)聯(lián)到allocSpace分配的堆內(nèi)存,也需要將per這個(gè)指針變量的 地址傳遞進(jìn)去,所以就用到了二級(jí)指針.
  • 重點(diǎn)來(lái)了,指針的引用,如下代碼:
  • struct Person {int age;int id;string name; }; void allocSpace2(Person* &p) { // Person* &p = per; 本質(zhì)上為 Person** const p = &per;p = (Person *)malloc(sizeof(Person)); // p本身存放的實(shí)際內(nèi)容其實(shí)是per這個(gè)指針變量所在的內(nèi)存地址, 因?yàn)閜是引用類型所以編譯給我們優(yōu)化了p->age = 23;p->id = 2; }void test6() {Person *per = NULL;allocSpace2(per);cout << per->age << endl;cout << per->id << endl;free(per); } int main() { test6();return 0; }
  • 引用的本質(zhì)
  • {// 引用的本質(zhì)int a = 3;int &p = a; // 其本質(zhì)就是 int* const p = &a;p = 5; // 其本質(zhì)就是 *p = 5; }

    總結(jié)

    以上是生活随笔為你收集整理的C++ 对引用的理解4的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。