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

关于常引用的简单有关问题

2012-03-14 
关于常引用的简单问题constint&ab这是常引用,那么这个是指b的值不能改变。还是指a的指向不能改变呢?ab+2

关于常引用的简单问题
const   int   &a=b;
这是常引用,那么这个是指b的值不能改变。
还是指a的指向不能改变呢?
a=b+2;对还是错?
a=c;对还是错?

我看了一本书,将常指针和指向常量的指针。后面又有常引用。有点糊涂勒。
还有常对象,常成员函数,常成员变量,等~
谁有这方面总结的文章,可以给我看看。谢谢了。

[解决办法]
a=b+2;对还是错?
a=c;对还是错?
这2个都错,a不能再改变了
[解决办法]
首先,仅从语法上讲,那个引用的确是指被引用的对象不能被修改。
引用一辈子只能引用一个对象,本来也没有“所引对象可变的引用”这一说。
因此,一个引用的被引用对象不能变,事实上也就意味着你不能通过它为那个被引用的对象进行赋值。
[解决办法]
在引用中,引用的指向是不能改变的。

所以上面的
a=b+2;
a=c;
都是错的,它试图去改变一个const型的的值。

如果a定义为:int &a=b;
那么:
a=b+2;
a=c;

b=b+2;
b=c;
是等价的。
[解决办法]
引用和指针的区别:
1.引用必须初始化,指针不必.
2.引用初始化后不能被改变,指针可以改变所指的变量.
3.不存在指向空值的引用,但是存在指向空值的指针.

const int a;
int const a;
const int *a;
int * const a;
int const * a const;

前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。

热点排行