c++ 引用(简洁易懂)
一、引用的概念
引用就是给一个变量起别名。它实际上是一个指针常量。 改变引用,那原变量的值也会改变。
int a=10;
int& b=a;
b=30;
cout<<a<<endl;
上面这个程序a的输出结果为30
二、引用的规则
1、引用一旦定义,就必须同时初始化
int a=10;
int& b=a;
int& b;
b=a;
2、引用一旦初始化,就不可以更改
int a=10,b=20;
int& c=a;
c=b;
&c=b;
3、常量引用的不合法性 引用的对象必须是一个合法的内存,因此不能直接引用一个常量
int& b=10;
加上const后就合法。
const int &ref=10
int temp=10;
const int &ref=temp;
且加上const变为只读,不可以修改!!
三、引用传参与返回引用
1、引用传参、指针传参、普通值传参
- 引用传参和指针传参都能改变实参,而普通值传参仅仅是改变形参
void swap1(int& a,int& b)
{
int temp=a;
a=b;
b=temp;
}
void swap2(int* a,int* b)
{
int temp=*a;
*a=*b;
*b=temp;
}
void swap3(int a,int b)
{
int temp=a;
a=b;
b=temp;
}
int main()
{
int a=10,b=20;
swap1(a,b);
int *c=&a,*d=&b;
swap2(c,d);
int e=10,f=20;
swap3(e,f);
return 0;
}
以上程序中都是交换程序,但是只有swap1和swap2实现了两者的交换,swap3没有实现e、f的交换。引用传参和指针传参改变实参,普通值传参仅仅改变形参!
2、引用返回
- 函数的返回值可以是引用。【注】不要返回临时变量引用,要返回静态变量引用。
int& test()
{
int a=10;
return a;
}
int& test()
{
static int a=20;
return a;
}
int& test()
{
static int a=20;
return a;
}
int main()
{
test()=100;
}
以上为个人笔记,如有错误请指正!
|