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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

c++—引用。。。

發布時間:2025/3/12 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++—引用。。。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

      • 目錄
      • 前言
      • 引用的概念
      • 交換a和b的值:
      • 引用作為函數的返回值
      • 常引用
      • 例子

前言

純自學,看的mooc上郭老師的課,整理整理。。。不然全忘了。。

引用的概念

類型名&引用名=某變量名;

int&r=n;

r引用了n,r的類型是int&,r是引用變量。
某個變量的引用等價于這個變量,r和n是一回事。
注意
定義引用時一定將其 初始化成引用某個變量;
初始化后,他就一直引用該變量,不會再引用別的變量;
引用只能引用變量,不能引用常量和表達式;

double a=4,b=5; double &r1=a; double &r2=r1; r2=10; cout<<a<<endl;//輸出10 r1=b; ///r1沒有引用b,而是從一而終的引用a,這里只不過是對r1賦值; cout<<a<<endl; ///5

交換a和b的值:

指針間接取值

void swap(int*a,int*b) { int tmp; tmp=*a; *a=*b; *b=tmp; } int n1,n2; swap(&n1,& n2);///傳變量地址調用

傳引用調用

int &swap(int &x,int &y) { int t=a; int a=b; int b=t; } swap(m,n);///m,n等價于x,y,于是x,y交換,就m,n交換;

引用作為函數的返回值

int n=4; int &setvalue(){return n;}//函數返回值是引用,這個引用引用了全局變量n; int main() {setvalue()=40;//等價于對n賦值cout<<n;return 0; }///輸出40

常引用

不能通過常引用修改其引用的內容;

int n=10; const int&r=n; r=200;//錯 n=300;//可以,引用的內容可以被修改,只不過不能通過常引用修改。。

例子

#include <iostream> using namespace std; class A { public:int x;int getX() { return x; } }; void swap(A&a,A&b) ///自定義了一個類型AaA的對象。。。 {int tmp = a.x;a.x = b.x;b.x = tmp; } int main() {A a,b;a.x = 3;b.x = 5;swap(a,b);cout << a.getX() << "," << b.getX();return 0; }

交換指針,有時在數組里用到。。。
不過可以用strcpy,挺麻煩。。

#include <iostream> using namespace std;void swap(int*&a,int*&b)///交換兩個指針指向的地址,引用的是個指針。。。 {int * tmp = a;a = b;b = tmp; } int main() {int a = 3,b = 5;int * pa = & a;int * pb = & b;swap(pa,pb);cout << *pa << "," << * pb;return 0; }

返回值是引用,引用了a[i],于是返回值是它。。
然后對它賦值

#include <iostream> using namespace std; int& getElement(int * a, int i) {return a[i]; } int main() {int a[] = {1,2,3};getElement(a,1) = 10;cout << a[1] ;return 0; }

總結

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

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