文章目录
- 1. 介绍
- 2. 如何使用
1. 介绍
从C++11开始,auto变成了类型指示符(之前auto并不是这个作用)。使用auto定义变量时必须对其进行初始化,在编译阶段编译器自动推导auto变量的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。
#include <iostream>
using namespace std;
int TestAuto()
{
return 10;
}
int main()
{
int a = 10;
auto b = a;
auto c = 'a';
auto d = TestAuto();
cout << typeid(b).name() << endl;
cout << typeid(c).name() << endl;
cout << typeid(d).name() << endl;
return 0;
}
2. 如何使用
- auto与指针:auto声明指针类型变量时,auto和auto*没有区别。
- auto与引用:auto声明引用类型变量时,必须加引用符&—auto&。
范围for中经常使用auto&:
void TestFor()
{
int array[] = { 1, 2, 3, 4, 5 };
for (auto& e : array) {
cout << e << endl;
}
}
-
auto定义多个变量:同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错。
-
auto不能作为函数的形参类型:编译器无法推导该形参的实际类型。
-
aoto不能用于声明数组。