C++11的新标准中,引入了auto类型说明符,采用auto可以让编译器为我们去分析表达式的数据类型,省去了繁琐的描述。
但是在auto的使用中,也需要注意一些细节。
1.auto可以在一条语句中声明多个变量,但是同一条声明语句只能有一个基本数据类型。
auto i = 0, *p = &i; //正确
auto q = 0, pi = 3.14; //错误
2.编译器推断出来的类型,不一定和初始值的类型相同。
int i =0 , &r= i;
auto a = r; //a是一个int类型的数据,而不是int的引用类型
auto 一般会忽略顶层const(即指针本身是个常量),但底层和顶层同时存在时,底层(指向的数据是常量)会被保留下来。需要明确指出。