和 之间是否存在语义差异auto const
,const auto
或者它们的含义相同?
问问题
20358 次
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 回答