我正在网上浏览一些代码,我看到了这两个声明,
const std::string strFoo = "MyFoo";
和
std::string const strBar = "MyBar";
我对const关键字的不同位置感到困惑。究其目的是什么?
谢谢!
答案 0 :(得分:4)
在这种情况下,它使没有区别。
对于更复杂的声明,它可能会产生很大的不同。
你可以说const
适用于左边的内容,如果没有,那么它适用于右边的内容。
例如,在指向int:
的指针上使用const
限定符
const int* ptr1; // (1.) pointer to const int
int const * ptr2; // (2.) same as 1.
int* const ptr3; // (3.) const pointer to int
const int* const ptr4; // (4.) const pointer to const int
int const * const ptr4; // (5.) same as 4.
有关如何阅读复杂类型声明的更多信息,请参阅:C Right-Left Rule