【C++】指针与指针变量详解

 

我们来先看下指针和指针变量都是什么?

1.指针指的是地址。

 

2.指针变量,首先 它是一个变量,是变量就有地址,所以指针变量有自己的地址。其次 指针变量存储的值,是一个地址,这个地址可以是另外一个变量的地址,也可以是分配出来的堆的地址。

640?wx_fmt=jpeg

从程序的输出可以看出,a, b, c都是指针变量,它们都有自己的地址,并且每个指针变量的地址并不相同。当a,b,c都赋值为nullptr的时候,这些指针变量里面存储的地址都是 0;

 

640?wx_fmt=jpeg

当a,b,c的值指向不同的地址的时候,我们会发现,指针变量a,b,c的地址并没有变化,而这些指针变量值中存储的地址发生了变化。当我们对这些指针变量做*操作的时候,获取到的数值,是存的的那个地址里面 存储的变量值。

640?wx_fmt=jpeg

从上面的输出结果可以看出,不同的指针变量可以指向相同的地址,一旦这个存储地址里面存储的值被改变,那么指向该地址的指针变量的*操作都会得到同样的变化后的值。

640?wx_fmt=jpeg

从上面的程序输出结果来看,delete操作只是将存储数值的那块地址内的数值移除,并没有将指针变量的指向别处。

如果你希望对应的指针变量指向别处,你需要自己添加这部分操作,例如a=nullptr; 如此以来指针变量a所指向的地址就变成了0, 但是指针变量b,c指向的地址并没有改变。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值