使用&符进行引用,引用的作用是为变量取一个别名,使用别名既是变量。
int a = 10;
int&b = a;
b = 20;
std::cout << "\n" << a << "\n" << std::endl;
引用可以作为函数的返回值,作用是直接可以对返回值进行赋值。
int c= 10;
int & test_a()
{
return c;
}
int main()
{
test_a() = 40;
std::cout << "\n" << c << "\n" << std::endl;
}
引用还可以为常引用 ,常引用通过定义时的constl来将普通引用变为常引用,常引用的意思为,不可以通过该引用来修改变量的值。
int main()
{
int j = 10;
const int &i = j;
std::cout << "\n" << i << "\n" << std::endl;
//i = 10;编译不通过
}
非常引用可以初始化常引用。
int main()
{
int a = 10;
int &b = a;
const int &c = b;
std::cout << "\n" << b << "\t" << c << "\n" << std::endl;
}
常引用不能初始化非常引用。
int main()
{
int a = 10;
const int &b = a;
//int &c = b将限定符会丢失
//std::cout << "\n" << b << "\t" << c << "\n" << std::endl;
//编译错误
}
函数的形参使用const进行限定可以防止函数修改数据。
void test_a(const char *chuan)
{
//strcpy(chuan, "hehe"); 防止函数修改内容
printf("%s", chuan);
}
int main()
{
test_a("这是一条测试语句");
}
不可以通过常引用来修改引用的内容。
int main()
{
int a = 10;
const int &b = a;
b = 20;//编译错误
}