一、auto

C++中auto和decltype的区别和功能_内存地址

C++中auto和decltype的区别和功能_变量名_02

 

 C++中auto和decltype的区别和功能_内存地址_03

 

 

划重点:

1、auto是推导不出来顶层const的(顶层const就是保证自己内存地址里面存放的值不会变,底层const保证的是所指向的值,值本身不会变)

2、想要auto推导出来的类型是一个引用,通过下面方式(a是变量名)

auto &a;
    int a=3;
    int &b=a;
    auto c=b;
    c=5;
    cout << a << c;
//输出 3 5,可见推导出来的c变量是一个int变量,而不是引用

推导出来类型是指针的话,那么在变量定义的时候

auto a=&b;
auto *a;

 

 

二、decltype

C++中auto和decltype的区别和功能_其他_04

 

 C++中auto和decltype的区别和功能_变量名_05