引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。
类型& 引用变量名(对象名) = 引用实体
例如:林冲外号豹子头
1.引用可以多次引用
2.引用可以做返回值
但是这时候直接打印ret是错误的,原因:
1.如果Cat函数结束,没有清理栈帧,那么打印出来的ret侥幸正确;
2.如果Cat函数结束,清理栈帧,那么打印出来的是随机值
这时候我们应该
总结:
1.一般情况下都可以用引用传参
2.谨慎用引用做返回值,出了作用于对象不在了就不能用引用做返回值
我们可以让变量在静态库,这样函数栈帧不会反复创建销毁