在C++ 11 标准以前,作用与static关键字相反,使用时必须指明变量类型,书写代码时常常省略。而在C++ 11 标准以后,auto关键字后面的变量可以不指明变量类型,由编译器自己推导得到。
auto的用法auto关键字相当于占位符,在运行过程中会被“替换”为原数据类型,因此auto修饰的关键字必须被初始化,同时在使用过程中注意auto关键字不可出现二义性,比如:
int a = 1; auto *b = &a, c = 2; //正确编译器推导出前者auto为int类型,后者也为int类型 auto d = a, e = 3.0; //错误,auto前后类型不一致
当auto与const结合时:
若类型不是引用类型,编译器推导出的auto类型不带const属性;反之则带const属性
const int a = 1; auto b = &a; //auto的类型是int* auto &c = a; //auto的类型是const intauto的注意事项
1.auto关键字在修饰变量时必须被初始化;
2.auto关键字不能修饰数组;
3.auto关键字不能作为函数的参数;
4.auto关键字不能修饰类中的非静态变量成员;
5.auto关键字不能作为模板参数
1.auto关键字常用于修饰STL库的迭代器
2.auto关键字可用于泛型编程



