int *const &x与int *&x的区别是什么
来源:百度知道 编辑:UC知道 时间:2024/05/16 00:55:45
既然有人说引用的功能其实和type * const p指针是相同的,那int *const &x中const是否可有可无??
int *const &x中的const不能没有!
实际上这里可以去掉&来讨论,如果去掉&来理解,是不是明了些?
这是x的引用的类型是int*,而*后的const是用来限制变量的指向不可变,如果有,那么x指向的地址不可变,如果没有,可以改变x:
int i = 0, j = 1;
int *const &x = &i;
int * &p = &i;
x = &j; //error,x的指向不可变
*x = 2; //OK
p = &j; //OK
1L说的对的,我再试着说个更好的理解吧.
首先提取const,看看修饰的是什么?
我们看到:它是修饰引用类型的.
引用类型修饰的什么类型?
我们看到:对应的是int *;即int 型指针.
那么来看:int *const &x:
const修饰的是一个引用,这个引用所对应(修饰)的是一个int指针类型.所以指针型引用不能修改.即x不能引用其他指针了.
const关键字实在是神通广大
如果const出现在星号(*)的左边,指针指向的数据为常量;如果const出现在星号(*)的右边,指针本身为常量;如果const在星号(*)的两边都出现,二者都是常量。
int *const &x与int *&x的区别是什么
const int &x和int const &x有何区别?谢谢~
C++ const int my_fn(int) const;
const int& value解释
const static int
关于extern const int
const int *p和 int const *p有区别?
int sprintf (char * szBuffer, const char * szFormat, ...)
const int *p和int * const a声明有何不同?
const int a = 10 和 int const a = 10有什么区别?