C++中 指针和引用

相信很多c++初学者都搞不清指针和引用是个什么玩意,这里我也不写其定义。主要解释“&”和“*”的作用。相信看完以后一定会有收获的。

首先,看起几个常见的例子:

int i =520; 
int &r = i; // 
int *p;
p = &i;
*p = i;
int &r2 = *p

以上是一些c++中常见的写法. 其中“&”和“*”既能作为表达式的运算符,也能作为申明的一部分,符号的上下文决定了符号的意思。

int i =520; 
int &r = i; // 引用, r引用了i的值
int *p; //指针,  申请了一个指针p
p = &i; //取地址符 p储存了i的地址
*p = i; //解引用符 
int &r2 = *p // &是引用, *是解引用符, r2引用了相当于i的值。

所以分两种情况,当“&”和“*”紧随类型名出现时,分别代表引用和指针。 作为表达式的运算符时,分别代表取地址符和解引用符。这样即使较为复杂的情况,我们都能分析清楚了。

例子:

int a =520;
int p = &i;
*p = *p * *p

这段代码首先定义了一个int型的变量i,并赋初值42,随后定义了一个int型指针,初始值为i的地址,*P在表达式中,指的就是解操作符,而中间的*是乘的意思,所以作用就是将i改变为42*42。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值