C++中的复合类型,const和auto

Jak*_*ght 3 c++ const auto c++11

我试图理解这段代码.我一直在想弄清楚为什么d以及eint*const int*.我可以使用一些帮助.

const int ci = i, &cr = ci;
auto b = ci; // b is an int (top-level const in ci is dropped)
auto c = cr; // c is an int (cr is an alias for ci whose const is top-level)
auto d = &i; // d is an int*(& of an int object is int*)
auto e = &ci; // e is const int*(& of a const object is low-level const)
Run Code Online (Sandbox Code Playgroud)

Vit*_*meo 5

&i意思是"取地址i".既然i是a int,那&i就是int*.的类型的d推导作为int*由于自动类型推导规则.

同样的推理可以应用于ci.唯一的区别是const限定符.

  • @BiancaStan如果这个答案适合你,请点击答案分数周围的复选标记.这比说谢谢你好;) (4认同)