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

问一个引用的有关问题

2012-02-29 
问一个引用的问题为什么int*r;int*&pr编译能通过而intr0int*&pr&r不能通过啊?是不是引用的数据类型

问一个引用的问题
为什么int   *   r;
int   *   &p   =   r;编译能通过
而     int   r   =   0;
        int   *   &pr   =   &r;不能通过啊?

是不是引用的数据类型还必须和变量的类型一致啊?

[解决办法]
引用所关联的东西必须是一个有存储的实体,而&i只是一个值,它不会保存在系统内任何地方的
[解决办法]
还是换本好点的C++书吧,比如C++ Primer
[解决办法]
建议楼主仔细看看C++Primer上讲的有关内容,里面说的很清楚:

int ival = 1024;

int &refVal = ival; // ok: refVal refers to ival

int &refVal2; // error: a reference must be initialized

int &refVal3 = 10; // error: initializer must be an object

但是:
const引用可以初始化为不同类型的对象或者初始化为右值(2.3.1节),如字面值常量:

int i = 42;

// legal for const references only

const int &r = 42;

const int &r2 = r + i;

同样的初始化对于非const引用却是不合法的,而且会导致编译时错误

热点排行