C++中的引用和指针

初学C++的引用与指针的时候,因为没有弄清楚取地址操作符”&”和解引用操作符”*”,经常会被一些表达式搞糊涂,所以在这里做一下总结。

1. 定义引用时的&操作符只起一个标识作用,表示该变量是一个引用,并不是取地址。

int a;
int &b = a;

在上述代码中,声明了b为a的引用,即b为a的别名。a,b位于同一地址,对b进行操作即对a进行操作。

2. 声明定义指针时的*操作符只起一个标识作用,表示该变量是一个指针,并不是解引用。

int *p;

3. 初始化指针或给指针赋值时的&操作符起取地址的作用。

int value = 0;
int *p;
p = &value;   //此处的&操作符起取地址的作用,取出value变量的地址,存储到指针p

4. 通过指针访问变量时,*操作符起解引用的作用。

int value = 0;
int *p;
p = &value;   //此处的&操作符起取地址的作用,取出value变量的地址,存储到指针p
int result = *p; //此处的*操作符起解引用的作用,访问指针p指向的对象value

我们发现,如果声明变量b为变量a的引用,那么a,b位于同一地址,代表同一变量,对b操作就是对a操作;
如果声明变量c为指向a的指针,那么c是一个新的变量,存储的内容为a的地址,要通过c对a进行操作,需要对c进行解引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值