定义:
auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
int TestAuto()
{
return 10;
}
int main()
{
int a = 10;
auto b = a; // int
auto c = 'a'; // char
auto d = TestAuto(); // int
//auto e; 无法通过编译,使用auto定义变量时必须对其进行初始化
return 0;
}
auto使用于循环中
void main()
{
int array[] = { 1, 2, 3, 4, 5 };
for(auto& e : array)
e *= 2;
for(auto e : array)
cout << e << " ";
}
- 必须初始化
//auto e; 无法通过编译,使用auto定义变量时必须对其进行初始化 - 编译的时候自动替换成变量实际的类型
typeid(b).name()可以显示类型- 在同一行定义多个变量,必须是同类型的
auto c = 3, d = 4.0; // 该行代码会编译失败,因为c和d的初始化表达式类型不同 auto不能做参数
void TestAuto(auto a)auto不能定义数组
auto b[3] = aauto不能循环使用指向数组的指针- 必须要有迭代输出的范围
void TestFor(int array[])
{
for(auto& e : array)
cout<< e <<endl; // error
}
本文深入探讨了C++中auto关键字的用法和限制,包括其作为类型推导的作用、在循环中的应用、以及初始化的必要性。同时,文章通过实例讲解了auto在不同上下文中的行为,如函数返回值、基本数据类型和复合类型。
1609

被折叠的 条评论
为什么被折叠?



