首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求理解reference的本质和pointer的区别的一到迷你小题,该如何解决

2012-03-21 
求理解reference的本质和pointer的区别的一到迷你小题C/C++ code#include iostreamusing namespace stdi

求理解reference的本质和pointer的区别的一到迷你小题

C/C++ code
#include <iostream>using namespace stdint main(){    int a = 10;    int& b = a;    int* c = &b;    cout << &a << endl;    cout << &b << endl;    cout << &(*c) << endl;        return 0;}

sent to cout的这三个内存地址是一样的吗?请高手分别详细解释一下,Thank you!


[解决办法]
当然一样
int &b = a;则b相当于是a的一个别名,地址是一样的,比如一个人叫李波,那么波波也是他。
由上可知*c = &b 等价于*c = &a;
c 记录a(b)的地址,那么*c 就是a了,然后你就知道了
[解决办法]
引用和指针的区别:
1)引用是变量的别名,指针实质是一个变量,但存放的是变量的地址;
2)引用在定义的时候必须赋初值,并且在生存周期内不能再改变;指针的值可以改变;
3)引用的值不可以赋值为0或者NULL,但是指针可以赋值为NULL
 
针对楼主的题:
变量 a 分配了一个空间,引用 b 是这个空间的别名,就相当于同一个人有两个名字,所代表的内存空间还是一个。int* c = &b 等价于 int* c = &a ,定义了一个指针,指向的是 a(b)这个内存空间。所以上面三者是一样的

热点排行