C/C++ 98标准 C++03标准
意思完全一样:auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。auto的出现意味着,当前变量的作用域为当前函数或代码段的局部变量,意味着当前变量会在内存栈上进行分配。
平时的double a=10.5;其实就相当于auto double a = 10.5;作用域在整个函数体中。
C++11标准
C++11引入auto类型说明符,用它能实现让编译器替我们分析表达式所属的类型。auto让编译器通过初始值来推算变量的类型。显然,auto定义的变量必须有初始值。11
比如,auto Sum =a1+a2;若a1、a2是float类型,则Sum的类型就是float;若a1、a2是某个类的对象,则Sum也为该类的对象;
使用auto也能在一条语句声明多个变量,但是基本数据类型必须相同,如:
auto i=0,*p=&i; //正确,i是整数,p是整形指针
auto sz=0,pi=3.14; //错误,sz和pi类型不一致