C++学习笔记(四)

1.引用

实际是一个变量的别名,类型 &来声明

与指针的不同

1、并且不能为NULL,且一定要初始化,不能改变;指针可以为NULL,且可以指向不同的对象

2、不能有多级引用;指针可以有多级

3、++ 和 -- 操作,指针是对地址,引用是对引用的变量操作;引用访问时直接访问,而指针访问时间接访问

code:

#include<iostream>
using namespace std;

void swap1(int &a, int &b){
    int t = a;
    a = b;
    b = t;
}

void swap2(int* a, int* b){
    int temp = *a;
    *a = *b;
    *b = temp;
}
int main(){
    int x=1, y=2;
    int* p1=&x,* p2=&y;
    cout<<x<<y<<endl;
    swap1(x,y);
    cout<<x<<y<<endl;
    swap2(p1,p2);
    cout<<x<<y<<endl;
    return 0;
}

结果:12  21  12

可见都实现了交换

引用和指针的意义用一张自己做的图帮助理解,但是内存中显然不是这样的。

  

引用就像变量名一样绑在content后面,使得该引用不能再指向别的content,当然一个变量可以有很多个引用;指针则是另外的变量,存储了content所在的内存地址,

在swap函数中,指针是通过&地址的方式间接改变content的值;引用则是直接改变。

猜你喜欢

转载自blog.csdn.net/Wzz_Liu/article/details/81808893
今日推荐