C++学习笔记(1.引用)

  1. C++对C语言有很多功能上扩展,大部分的扩展都是为了实现面向对象的机制
  2. 引用的概念
    类型吗 & 引用名 = 某变量;
int n = 4;
int &r = n; //r引用了n,r的类型是 int &

某个变量的引用,等价于这个变量,相当于这个变量的一个别名,相当于两个是一回事了*

int n = 7int &r = n; //r引用了n;
r = 4;
cout <<r; //输出4
cout <<n;  //输出4,因为r和n已经是一回事了
n = 5;
cout << r; //输出5,因为上一行代码对n进行了赋值

1.定义引用时一定要将其初始化成引用某个变量;2.初始化后,它就一直引用该变量,不会再引用别的变量了。【从一而终】;3.只能引用变量,不能引用常量和表达式

double a = 4,b = 5;
double & r1 = a;  //r1引用了a
double & r2 = r1;  //r2引用了r1,等同于r2也引用了a
r2 = 10;       
cout << a <<endl;  //10
r1 = b;  //因为引用是从一而终,r1并没有在这里引用b,而是对r1进行了赋值操作
cout << a << endl; //5
  1. 引用应用的例子——值的交换
void swap(int a, int b){
int t;
t = a; a= b; b=t;
}
int n1,n2;
swap(n1,n2)
//n1,n2的值不会交换
void swap(int *a, int *b){
int t;
t = *a; *a= *b; *b=t;
}
int n1,n2;
swap(&n1,&n2)
//n1,n2的值会交换
//C++引用的利用
void swap(int & a, int & b){ //两个引用作为参数,a引用了n1,b引用了n2
int t;
t = a; a= b; b=t;
}
int n1,n2;
swap(n1,n2)
//n1,n2的值会交换

4.引用作为函数的返回值

int n =4int & SetValue(){return n;}
//这个函数的返回值类型是引用
int main(){
 setValue()=40//则可以对一个函数的返回结果进行赋值,因为类型是引用,引用了n,等价于等n进行赋值
 cout<<n;//输出40
 return 0;
}

5.常引用
定义引用时,前面加const关键字

int n;
const int & r = n; //r的类型是 const int &
r = 200; //编译出错
n = 300; //OK

不能通过常引用修改其引用的内容

发布了15 篇原创文章 · 获赞 6 · 访问量 4479

猜你喜欢

转载自blog.csdn.net/weixin_44070116/article/details/105122318
今日推荐