90

和 之间是否存在语义差异auto constconst auto或者它们的含义相同?

4

2 回答 2

122

const限定符适用于紧靠左边的类型,除非左边没有任何东西,然后它适用于紧靠右边的类型。所以是的,它是一样的。

于 2012-05-22T20:50:10.020 回答
29

人为的例子:

std::vector<char*> test;
const auto a = test[0];
*a = 'c';
a = 0; // does not compile
auto const b = test[1];
*b = 'c';
b = 0; // does not compile

两者a都有b类型char* const。不要以为你可以简单地“插入”类型而不是关键字auto(这里:)const char* a!关键字将const应用于auto匹配的整个类型(此处为:) char*

于 2014-08-14T08:12:19.797 回答