1.介绍
auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编器
期会将auto替换为变量实际的类型(通过分析数据)
。
使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。
比如:int a = 1;可以替换为 auto a = 2; 这时候auto被替换为int。
2.使用细则
1.如果用auto同时定义多个变量如:auto a = 1,b = 2; a和b的初始化数据的类型必须一样否则会报错。
2.用auto定义指针变量时可以用auto a = &x,也可以用auto*a =&x。后者表示a的类型一定是指针,否则报错。
3.auto不能定义数组,不能作为函数参数类型
小知识:NULL的会分不清是整形还是地址,所以c++一般用nullptr,具体请看http://t.csdnimg.cn/93JYS
3.auto的使用
范围for的使用:
for(auto e:arr)
{
}
从头到尾(从其他位置遍历是不被允许的)遍历整个数组,每次把值存在变量e里(名字可以变)。
注意arr的范围一定要确定,这样就不行:
void
TestFor
(
int
array
[])
{
for
(
auto
&
e
:
array
)
;
}
范围不确定。