一、关键点
auto让编译器通过初始值来推算变量的类型
如:auto i = 2; //等价于int i = 2;
二、与复合类型、常量的结合
1. 引用
int i = 0, &r = i; auto sz = r; //sz的类型为r所绑定的对象i的类型
以引用对象的类型作为auto的类型。
2. const
auto会忽略掉顶层const,而底层const则会保留下来。
auto b = ci; //ci的顶层const被忽略 auto c = cr; //cr是ci的别名,ci本身是一个顶层const auto d = &i; //d指向整型i auto e = &ci; //e指向整型常量ci,对常量对象取地址是一种底层const
如果希望auto类型是一个顶层const,可以这样:const auto f = ci;