谭浩强请你别出书害人误导跟我一样的孩子了。。。。。。。。。

         // 指针不是地址!!废话不多说上代码
#include <iostream>
using namespace std;
void main ()
{
	int a=3;
	int *ip=&a;
	cout<<"a的地址"<<&a<<"    a的内容"<<a<<endl;
	cout<<"ip的地址:"<<&ip<<"    ip的内容"<<ip<<endl;
}

执行结果:

              a的地址:0012FF7C a的内容3

             ip的地址:0012FF78 ip的内容0012FF7C

所以说指针实际上只是把a的地址作为值存到了自己的实际地址中,这也是为什么sizeof()任何一个32位机器上的指针得到的数都是4的原因,指针的类型决定了他的基础操作时指针中数值的改变,比如ip++时ip中的内容值增加了sizeof(int)编译器会通过ip的内容来找到a这个变量,但并不是ip指向了a,ip就和a变成了一样的东西,如果想实现那样的功能应该使用引用。

#include <iostream>
using namespace std;
void main ()
{
	int a=3;
	int &refi=a;
	cout<<"a的地址"<<&a<<"    a的内容"<<a<<endl;
	cout<<"refi的地址:"<<&refi<<"    refi的内容"<<refi<<endl;
}

执行结果:

              a的地址:0012FF7C a的内容3

              refi的地址:0012FF7C  refi的内容3
引用才是地址的别名,而指针只是一个让编译器可以找到一个地址的一种方式,是单独的一个类型,其中的值用来存储所指向的地址。就好比 甄宓 这个人是个小妞,她又有个别称叫做洛河女妖,你找到洛河女妖便是找到了甄宓,这是用引用的方式描述。甄宓的电话号码是0012FF7C,你可以通过这个电话号码找到她,这是用指针的方式描述,但是你的明白,电话号码不是甄宓~

额最近发现自己废话好多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值