C++指针和引用的区别

练习2.18
编写代码分别更改指针的值以及指针所指对象的值。

#include <iostream>
using namespace std;
int main()
{
    int ival = 42;
    int *p = &ival;
    cout << *p << "\n";
    ival = 100;
    cout << *p << "\n";
    return 0;
}

输出:

分析:声明一个指针并赋予其一个变量,当变量的指改变时,指针指向的值也改变.
指针和引用的区别:
- 指针是一个实体,而引用仅仅是个别名
- 指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元。
- 引用是某一块内存的别名。
- 指针使用操作符“*”和“->”,引用使用操作符“.”,指针和引用都是让你间接的引用其它对象。
在C/C++中,指针一般指的是某块内存的地址,通过这个地址,我们可以寻址到这块内存;而引用是一个变量的别名。对于指针来说,它是一个地址,这个地址是一个数值,即意味着这个数值可以为0(空指针),也可以为其它。
而对于引用来说,它是一个变量的别名,也可以称之为`外号,所以引用不能为空,即不存在空引用。
从上面的代码我们可以看出,指针可以被多次赋值,即在某个时刻可以指向地址一,也可以在另一个时刻指向地址二
而引用并不是一个对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。为引用赋值,实际上是把值赋给了引用绑定的对象,获取引用的值,实际上是获取了与引用绑定的对象的值。而且引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。

引用和指针主要有三个不同:

  • 不存在空引用,引用必须连接到一块合法的内存

  • 一旦引用被初始化为一个对象,就不能被指向到另外一个对象。而指针可以在任何时候指向另外一个对象。

  • 应用必须在创建时被初始化,指针可以在任何时候被初始化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值