一、关键点

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;