C++11新标准引入了auto类型说明符,用它就可以让编译器替我们去分析表达式所属的类型,auto让编译器通过初始值类推算变量的类型。
auto使用方法:
auto i = 0, *p = &i; // 正确,i是整形,p是整形指针 auto sz = 0, pi = 3.14; // 错误,sz跟pi类型不一致
int i = 0, &r = i; auto a = r; // r是对i的引用,此时a的类型为int
const int ci = i, &cr = ci; auto b = ci; // 忽略掉顶层const,b的类型为int auto c = cr; // cr是对ci的引用,类型同上 auto d = &i; // d的类型是整形指针 auto e = &ci; // e的类型是指向整型类型的指针,对常量对象取地址是一种底层const
auto k = ci, &l = i; // k为整型,l为整型引用 auto &m = ci, *p = &ci; // m是整型常量的引用,p是指向整型常量的指针 auto &n = i, *p2 = &ci; // 错误,n是整型引用,p2是指向整型常量的指针