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;
与这一句输出了指针的值相同的结果,这是为什么呢?在网上找了一下,发现没有什么太好的解释,求教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.