auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。
例如:
auto
double
a=3.7;
表示a为一个自动存储的临时变量。
C++语言
C++ 98标准/C++03标准
同C语言的意思完全一样:auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。
C++ 11标准
在C++11标准的语法中,auto被定义为自动推断变量的类型。例如:
auto
x=5.2;
//这里的x被auto推断为double类型
map<
int
,
int
>m;
for
(
auto
it=m.begin();
//这里it被auto推断为map<int,int>::iterator类型
it!=m.end();++it)
{
//....
}
不过C++11的auto关键字时有一个限定条件,那就是必须给申明的变量赋予一个初始值,否则编译器在编译阶段将会报错。
结论:在一些C C++要兼容的代码里最好不要使用auto关键词,否则会因为意义不同而出错
这里有详细的说明:
http://blog.csdn.net/huang_xw/article/details/8760403