auto类型说明符

其实很好理解,当把值拷贝到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修饰的是变量指向的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值