const int &a = 10; 会分配内存
#include<iostream>
using namespace std;
void test01() {
//int &a=10; 引用了不合法的内存,不可以
//加入const后,编译器处理方式为:
//int tmp = 10;const int &a = tmp;
const int &a = 10;
//a = 10;
int *p = (int *)&a;
*p = 20;
cout << "a=" << a << endl;
}
int main() {
test01();
system("pause");
return 0;
}
常量引用使用场景 用来修饰形参为只读
#include<iostream>
using namespace std;
void showValue(const int &value) {
//如果只是想显示内容而不修改内容,那就用const修饰这个形参
//value += 12;
cout << "value=" << value << endl;
}
void test02() {
int a = 10;
showValue(a);
}
int main() {
test02();
system("pause");
return 0;
}