c++11 auto :
auto类型说明符:
//auto让编译器通过初始值推算变量类型
//auto定义变量必须有初始值
auto item=val1+val2;//通过相加结果可以推算item类型
//auto能一句声明多个变量,一条声明语句只能有一个基本数据类型
int i=0,&r=i;
auto a=r;//a是整数
//auto忽略顶层const,底层const保留
const int ci=i,&cr=ci;
auto b=ci;//b是一个整数(ci的顶层const 特性被忽略)
auto c=cr;//c是一个整数(cr是ci的别名,ci本身是一个顶层const)
auto d=&i;//d是一个整数指针(整数地址是指向整数的指针)
auto e=&ci;//e是一个指向整数常量的指针(对常量对象取地址是一种底层const)
//设置一个类型为auto引用,初始值中顶层常量属性仍然保留。和往常一样,如果给初始值绑定一个引用,此时常量不是顶层常量。