C++ 理解常量自动指针
考虑:C++ 理解常量自动指针,c++,c++11,C++,C++11,考虑: int main() { int * i0 = new int; *i0 = 666; // OK const int * i1 = new int; *i1 = 666; // FAIL due to const auto i2 = new int; *i2 = 666; // OK const auto i3 = new int; *i3 = 666; // OK, WHY? const auto * i
int main()
{
int * i0 = new int;
*i0 = 666; // OK
const int * i1 = new int;
*i1 = 666; // FAIL due to const
auto i2 = new int;
*i2 = 666; // OK
const auto i3 = new int;
*i3 = 666; // OK, WHY?
const auto * i4 = new int;
*i4 = 666; // FAIL due to const
return 0;
}
案例13为什么有效?我一直认为在这种情况下,const auto
会隐式地const int*
,但我想不是这样的吧
const auto i3 = new int;
执行此操作时,const
将应用于指针,而不是它所指向的对象
这相当于:
int* const i3 = new int;
也就是说
i3 = new int(20);
不起作用,但
*i3 = 666;
将起作用。好的,所以这里是
int*const
。对。@juzzlin,没错。可以安全地说这类似于执行typedef int*point;常数点ptr=新整数*ptr=666
?@scohe001,是。那很贴切。