目录
auto用法
auto可以根据传递的值来推断变量的类型。
#include <iostream>
using namespace std;
int main(){
auto a = 10;
auto b = 2.0;
auto c = &a;
//typeid().name 可以返回变量的类型
cout << typeid(a).name() << endl;
cout << typeid(b).name() << endl;
cout << typeid(c).name() << endl;
return 0;
}
引用的用法
引用不是新定义一个变量,而是给已经存在的变量取一个别名。编译器不会为引用变量开辟内存空间,它和引用的变量共用一块内存空间。
就像在生活中,我们会给别人取外号一样,引用就相当于给人取外号。虽然名字不同,但是都是同一个人。
类型& 引用变量名 = 引用实体。
void Test(){
int a = 20;
int &b = a; //此时b就是a的别名
cout << a << endl;
cout << b << endl;
cout << &a << endl;
cout << &b << endl;
}
引用的特征
1.引用必须初始化
2.一个变量可以有多个引用
3.引用一旦引用一个实体,再不能引用其他实体
引用的规则:
1.对原引用变量,权限只能缩小,不能放大。
int main(){
int a = 10;
int& b = a; //(1)
const int c = 20;
int &d = c; //(2)
int e = 30;
const int& f = e; //(3)
return 0;
}
引用的使用场景
1.引用做参数
2.引用做返回值
而引用做返回值时,只有咱返回值在函数结束时还存在,不会销毁才能使用引用做返回值。
引用做返回值的优点是减少一次拷贝构造,节约时间。