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

来源:互联网 发布:仲恺教务网络管理系统 编辑:程序博客网 时间:2024/04/30 18:29
         // 指针不是地址!!废话不多说上代码
#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,你可以通过这个电话号码找到她,这是用指针的方式描述,但是你的明白,电话号码不是甄宓~

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

原创粉丝点击