Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
常量ref和常量指针之间的差异,c++; 我想知道C++中const REF和const指针之间的区别。 当我将某物声明为const ref时,我可以更改它的值吗? 还是常数在物体上? 因为我知道常量指针意味着你不能改变指针,但是你可以改变它指向的值_C++_Pointers_Reference_Constants - Fatal编程技术网

常量ref和常量指针之间的差异,c++; 我想知道C++中const REF和const指针之间的区别。 当我将某物声明为const ref时,我可以更改它的值吗? 还是常数在物体上? 因为我知道常量指针意味着你不能改变指针,但是你可以改变它指向的值

常量ref和常量指针之间的差异,c++; 我想知道C++中const REF和const指针之间的区别。 当我将某物声明为const ref时,我可以更改它的值吗? 还是常数在物体上? 因为我知道常量指针意味着你不能改变指针,但是你可以改变它指向的值,c++,pointers,reference,constants,C++,Pointers,Reference,Constants,例如: const char& a; // ? const char* a; // pointer is const const char*a;//指针为常量 错误,这是指向常量的指针。这: char*const a;//指针为常量 是一个常量指针。我更喜欢这样写:char-const*avs.char*const a 这允许您从右到左读取:char const*a是:a是指向常量char的指针,char*const a是:a是指向char的常量指针。如果我读其他代码,我只记得cons

例如:

const char& a; // ?
const char* a; // pointer is const

const char*a;//指针为常量

错误,这是指向常量的指针。这:

char*const a;//指针为常量


是一个常量指针。

我更喜欢这样写:
char-const*a
vs.
char*const a

这允许您从右到左读取:
char const*a
是:
a
是指向常量
char
的指针,
char*const a
是:
a
是指向
char
的常量指针。如果我读其他代码,我只记得
constchar*a=charconsta*a

回答问题的另一部分: 当我将某物声明为const ref时,我可以更改它的值吗? 人们误用const-ref这个词实际上是指对常数的引用(因为常数引用毫无意义)。因此,const ref
const char&a
意味着您无法更改该值。但是,如果您实际上想要一个常量引用,
char&const a
,那么您可以更改该值,
const
部分没有任何区别

对于指针,
const char*a
表示不能将
a
指向的值更改为。将其与
char*const a
进行比较,这意味着您不能更改指针,但可以更改
a
指向的值

弗雷德·康斯特

这意味着x为Fred对象添加别名,但x不能用于更改Fred对象

弗雷德·康斯特*p

Fred const*p表示“p指向一个常量Fred”:Fred对象不能通过p更改

弗雷德*康斯特p

Fred*const p表示“p是指向Fred的常量指针”:您不能更改指针p,但可以通过p更改Fred对象


可以合并最后一个以获得:

弗雷德·康斯特*康斯特p

Fred const*const p表示“p是指向常数Fred的常数指针”:不能更改指针p本身,也不能通过p更改Fred对象


欲了解更多信息,请访问此网站。

重新评估您“知道”的内容。测试它。
const char*a;//指针是常量
——不,引用对象是常量。虽然您的观察是正确的,但这并不能真正回答问题。