关于C/C++中的“auto”关键字

C/C++ 98标准 C++03标准

  早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期。此用法是多余的,因为即使定义变量时不加"auto",变量也会有自动的生命期。用法如下:

auto int b = 20 ; //拥有自动生命期
int a =10 ;  //同样拥有自动生命期

  在C++11中,已经删除了此用法。

C++11标准 

  C++11引入auto类型说明符,用它能实现让编译器替我们分析表达式所属的类型。auto让编译器通过初始值来推算变量的类型。显然,auto定义的变量必须有初始值。

  比如,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类型不一致

 

posted @ 2015-07-29 19:04  Patrick_Liu  阅读(2831)  评论(0编辑  收藏  举报