C++11 auto类型说明符的使用

   编程的时候常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而做到这一点很难,有时候根本做不到。为了解决这个问题。C++11新标准引入了auto类型说明符,用它就 能让编译器帮我们去分析表达式所属的类型。auto通过编译器的类型来推算变量的类型。因此,auto定义的变量必须有初始值。

  使用auto的作用是很大的,它能让我们的代码更加流畅简易。

  尽管auto的定义看起来简单明了,但是有时编译器推断出来的auto类型有时候和初始值类型并不一样,所以编译器会适当的改变结果类型使其更符合初始规则。所以有几个细节需要我们注意:
 
1 使用引用类型给auto类型的初始值的时候,真正参与初始化的是引用对象的值。
     如int i = 0, &r = i;
     auto a = r;     //a是一个整数(r是i的别名,而i是一个整数)
 
2 auto一般会忽略顶层的const(顶层const表示指针本身是个常量,而顶层cosnt表示指针所指的对象是常量。也就是说顶层cosnt的这个概念作用于变量本身,所以const int i 也是一个顶层const;当执行对象拷贝的时候,不能让一个非指向常量的指针拷贝一个指向常量的指针,为了数据的安全,所以会检查底层const)
     比如 :
     const  int ci = i, &cr = ci;
     auto b = ci;    //b是一个整数(ci的顶层const特性被忽略掉了)
     auto c = cr;     //c也是一个整数(cr是ci 的别名,次本身是一个顶层const)
     auto d = &i;   //d是一个整型指针。
     auto e = &ci;  //e是一个指向整数常量的指针。(对常量对象取地址是一种低层的)
     
     如果我们希望推断出auto类型是一个顶层的const,则需要明确的指出,
     const auto f = ci;

转载于:https://www.cnblogs.com/everydaykeepgoing/p/7809507.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值