目录
8. auto关键字
8.1 auto简介
在C++11之前的版本中,对于auto的概念仅仅只有被auto修饰的变量,是具有自动存储器的局部变量。
在C++11版本中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
这是什么意思呢?
我们可以看见b的类型最终转变成了int。
当auto定义的变量没有初始化时,则会对其报错,是因为在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。
对于auto我们可以认为它可以帮助我们在定义变量时不需要写一些比较复杂的类型名,通过auto来直接替换
8.2 auto的使用细节
1. auto对于指针和引用结合使用
我们可以看见当右值是指针时,auto和auto*没有任何区别,但auto要声明引用时必须加上&,否则会认为是一个简单的替换实际类型。
2. auto定义一行