C++入门-auto关键字
1.auto可以修饰各种类型的变量,然后在编译阶段,将变量类型推导出来,进行替换。
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;
//auto e;无法通过编译,使用auto定义变量时,必须对其进行初始化。
int x = 10;
auto y = &x;
auto* p = &x;
//auto * p = x;无法通过编译*p与x类型不同。
auto& z = x;
cout << typeid(y).name() << endl;
cout << typeid(p).name() << endl;
cout << typeid(z).name() << endl;
2.在同一行声明多个变量,变量类型需要相同,否则编译会报错。
auto a = 1.0, b = 5.5;
3.auto不能作为函数参数
4.auto不能直接来声明数组
5.范围for
int array[] = { 1,2,3,4,5,6 };
for (auto e : array)//与for(int e =0;e<sizeof(array)/sizeof(array[0]);e++相同。
{
e *= 2;//不会改变原数组的值。
}
for (auto& e : array)
{
e *= 2;//可以改变原数组的值
}