命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶( 九 )


int a = 10;auto b = a;// 自动推导b的类型为intauto c = 'c';// 自动推导类型为charcout << typeid(b).name() << endl;cout << typeid(c).name() << endl;//auto d;必须初始化有一下几种用法:

  1. auto与指针和引用结合起来使用(auto和auto*无区别)
int a = 10;// auto和auto*无区别auto pa1 = &a;auto* pa2 = &a;auto& ra = a;// ==> int& ra = a;cout << typeid(a).name() << endl;cout << typeid(pa1).name() << endl;cout << typeid(pa2).name() << endl;cout << typeid(ra).name() << endl;运行结果如下:
命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶

文章插图
  1. 在同一行定义多个变量(这些变量类型必须相同,编译器只对第一个类型进行推导)
auto a = 3, b = 4;auto c = 3.4, d = 5.5;auto i =0, *p = &i;//正确,i是整型,p是整型指针cout << typeid(a).name() << endl;cout << typeid(b).name() << endl;cout << typeid(c).name() << endl;cout << typeid(d).name() << endl;cout << typeid(i).name() << endl;cout << typeid(p).name() << endl;auto不能推导的两个常见
  1. auto不能作为函数的参数
  2. auto不能直接用来声明数组

经验总结扩展阅读