c++初学阶段之auto关键字

编程时常常需要吧表达式的值赋值给变量,这就要求在声明变量的时候清楚的知道表达式的类型。然而做到这一点并非那么容易,有时甚至根本做不到。为了解决这个问题C++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原来那些只对应一种特定类型的说明符(比如 int ,double)不同,auto让编译器通过初始值来推算变量的类型。显然,auto定义的变量必须有初始值。

int val1=10,val2=20;
auto sum=val1+val2;

编译器会根据参与运算的变量的类型自行推断出用auto定义的变量应该是什么类型。

auto的使用细则

1. auto与指针和引用结合起来使用 用auto声明指针类型时,用auto和auto*没有任何区别,但用auto声明引用类型时则必须加&。

int x = 10;
 auto a = &x;
 auto* b = &x;
 auto& c = x;

2. 在同一行定义多个变量 当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对 第一个类型进行推导,然后用推导出来的类型定义其他变量。

auto a = 1, b = 2; 
 auto c = 3, d = 4.0; // 该行代码会编译失败,因为c和d的初始化表达式类型不同

auto不能推导的场景

1. auto不能作为函数的参数

2. auto不能直接用来声明数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值