引用相当于给变量起了另一个名字,但是他们指的是同一个变量,对任何一个名字进行处理,都是对同一个地址进行操作。
通过在函数内外打印变量地址可以验证这一点。
#include <iostream>
void displayFun(int& value); //参数引用
int main()
{
int dateInt = 100;
std::cout << "dateInt addr = " << &dateInt << std::endl; /*打印参数的地址,与函数displayFun()内打印地址相互印证*/
displayFun(dateInt); //value在此被引用, 可以看成int& value = dateInt;
std::cout << "dateInt = " << dateInt << std::endl; //验证参数在函数displayFun()是否可以修改
return 0;
}
/*引用参数传入时,函数的执行可对引用的变量起作用*/
void displayFun(int& value)
{
std::cout << "value addr = " << &value << std::endl; /*验证参数的地址*/
std::cout << "value = " << value << std::endl;
value = 200; //修改被引用参数的数值
}
输出:
dateInt addr = 0019FBA8
value addr = 0019FBA8
value = 100
dateInt = 200