根据下面的程序,我可以理解,引用前面的const
关键字的意思是Const 对const值的引用
,对吗?
#include <iostream>
using namespace std;
struct s
{
int x;
};
int main(void)
{
s a = {10}, b = {30};
// IN POINTERS ----------------
const s* ptrToConstValue;
ptrToConstValue= &a;
//ptrToConstValue->x = 30;
ptrToConstValue = &b;
s* const constPtrToNonConstVaue = &a;
constPtrToNonConstVaue->x = 40;
//constPtrToNonConstVaue = &b;
const s* const constPtrToConstValue = &a;
//constPtrToConstValue = &b;
//constPtrToConstValue->x = 30;
// IN REFERENCES -------------
const s& seemsToBeConstRefToConstValue = a;
//s = b;
//s.x = 30;
return 0;
}
最佳答案
所以困惑是这样的:
X x;
X* px = &x; // pointer to x
X* const px = &x; // *const pointer* to x
const X* px = &x; // pointer to *const x*
X const* px = &x; // identical
const X* const px = &x; // *const pointer* to *const x*
现在作为引用,“指针部分”始终是 const:
X& rx = x; // ref to x
X const& rx = x; // ref to const x
const X& rx = x; // identical
关于c++ - C++ 中的 const 指针与 const 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387062/