int foo = 11;
const int &a = 10;
int *p = &foo;
auto x = foo;
auto y = a;
auto &yy = a;
auto pp = p;
auto *ppp = p;
cout << y << endl;
cout << yy << endl;
cout << pp << endl;
cout << ppp << endl;
输出:
10
10
0x61fefc
0x61fefc
这段程序的前面我都理解,到了pp这里我就有点疑惑了,C++ Primer 上说auto会推断出基本数据类型,那么按理说*这种指针声明也应该去掉了,所以auto *ppp = p;才是正确的吧?但是auto pp = p;与这一句输出了指针的值相同的结果,这是为什么呢?在网上找了一下,发现没有什么太好的解释,求教。