您的位置:首页 > 其它

auto类型说明符

2016-06-24 15:08 197 查看
其实很好理解,当把值拷贝到auto修饰的变量的时候,通通忽略顶层const。但是当需要把变量作为别名绑定到其他变量上的时候,就不会省略底层const。

当我们不知道某个表达式的值的类型,但是需要用一个变量来存储这个值得时候,就用到auto类型说明符。

auto让编译器通过初始化的值来推算变量的类型。所以用auto定义变量时必须有初始值。

例如 auto a =10;//定义了一个整形变量a

auto的使用有以下需要注意的点:

当常量作为初始值的时候,auto一般忽略掉const(顶层const)。

例如:const int  a=10;

auto b =a;此时的auto等价于int

当一个指针作为初始值时,auto一般忽略到顶层const(如果有),保留下底层const。

例如:

const int *const p=&a;

auto b=p;//  此时的auto等价于 const int *

如果想用auto定义一个引用时,初始值中的顶层const任然存在。

例如

auto &b=a;

还需注意:auto & b=20;是错误的应该定义为const auto &b=20;

当然我们可以手动的给auto加上顶层const;

顶层const:const修饰的是变量本身。

顶层const:const修饰的是变量指向的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: