问一个关于引用指针的问题
const int val =1024;
const int *&ref = &val; //这个怎么会是错误的呢
const int *const &ref =&val //怎么要改成用这个才是正确的呢
const int *& ref = (int*)val //怎么用这个也正确的呢
我看的是c++ primer这本书,不明白怎么会变成这样写
[解决办法]
const int val =1024;//这里val是不可改变的
const int *&ref = &val; //这个怎么会是错误的呢//
上面引用内容不可改变,但指向的指针可以改变,就相当有把一个不可改变的常量地址赋给一个变量地址,c++是不允许这样操作的.
const int *const &ref =&val //怎么要改成用这个才是正确的呢
常量地址到常量地址,没问题
const int *& ref = (int*)val //怎么用这个也正确的呢
强制val为可以改变的int指针,所以也是可以的
[解决办法]
你再认真看看C++ Primer,它是不是说了非const引用不可以加在临时变量上。