什么是引用?

int a;

int &b=a;

上边就是变量的引用

符号&不是去地址的含义了,去地址是在指针时的含义,这里表示引用。(这个引用不是动词,而是名词)

引用的定义:对一个数据可以建立一个“引用”,它的作用是为一个变量起一个别名。

int &b=a;

以上声明了b是a的引用,即b是a的别名。

&符号的作用此时称为引用声明符,并不代表地址。

比较一下指针的使用:

int a=30;

int *p=&a;

cout<<*p;


 

 

int a=30;

int &b=a;

cout<<b;

注意:声明一个引用时,必须同时使他初始化。表明他是谁的别名。


 

例题:通过引用得到变量的值。

#include <iostream>
#include <iomanip>
using namespace std;

int main(){
    
    int a=10;
    int &b=a;
    a=a*a;
    cout<<a<<setw(6)<<b<<endl;
    b=b/5;
    cout<<b<<setw(6)<<a<<endl;
    
    return 0;
}

使用引用作为函数参数

例题:将变量i和j的值互换。

首先看交换失败的程序:

#include <iostream>
#include <iomanip>
using namespace std;

void swap(int a,int b){
    int temp;
    temp=a;
    a=b;
    b=temp;
}

int main(){
    
    int i=3,j=5;
    swap(i,j);
    cout<<i<<" "<<j<<endl;
    return 0;
}

接着使用指针的方法来进行交换的程序:

#include <iostream>
#include <iomanip>
using namespace std;

void swap(int *p1,int *p2){
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

int main(){
    
    int i=3,j=5;
    swap(&i,&j);
    cout<<i<<" "<<j<<endl;
    return 0;
}

最后,使用引用的方法来进行交换的程序:

#include <iostream>
#include <iomanip>
using namespace std;

void swap(int &a,int &b){
    int temp;
    temp=a;
    a=b;
    b=temp;
}

int main(){
    
    int i=3,j=5;
    swap(i,j);
    cout<<"i="<<i<<" "<<"j="<<j<<endl;
    return 0;
}

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!