auto关键字

一、auto 简介

在C语言中,使用 auto 修饰的变量,是具有自动存储器的局部变量,但很少有人去使用它,在C++11中,auto 有了新的含义,它不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto 声明的变量必须由编译器在编译时期推导而得。

我们通过一个简单的代码来了解一下

注意:auto就是一个占位符,编译器会根据初始化来推演出类型,填充位置,所以auto必须要初始化 

二、使用细则

1.用auto声明指针类型时,用auto和auto*没有任何区别

用auto声明引用类型时则必须加&

ra1就是与a相同类型的初始化变量

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

有红色的波浪线,代码编译失败,c和d的初始化表达式类型不同

三、在哪些情况下,auto 会推演失败

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

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

3. 为了避免与C++98中的auto发生混淆,C++11只保留了auto作为类型指示符的用法 ,只是一个占位符

4. auto不能定义类的非静态成员变量

5. 实例化模板时不能使用auto作为模板参数

四、新式for循环

使用这种方法,比原来的方法简单了很多,使用这种方法有什么要注意的呢?

1.对于数组而言,就是数组中第一个元素和最后一个元素的范围;对于类而言,应该提供begin和end的 方法,begin和end就是for循环迭代的范围。 

2.迭代的对象要实现++和==的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值