& 符号。例如,以下函数定义使形参 refVar 成为引用变量:
void doubleNum(int& refVar)
{
refVar *= 2;
}
注意,变量 refVar 被称为“对 int 的引用”。& 符号。与函数头一样,它在数据类型和变量名之间。如果原型中省略了变量名,那么 & 符号将跟在数据类型后面。以下所有 doubleNum 函数的原型都是正确的:
void doubleNum(int &refVar);
void doubleNum(int& refVar);
void doubleNum(int &);
void doubleNum(int&);
& 符号必须出现在使用引用变量作为形参的任何函数的原型和函数头中。它不会出现在函数调用中。
#include <iostream>
using namespace std;
// Function prototype. The parameter is a reference variable.
void doubleNum(int SrefVar);
int main()
{
int value = 4;
cout << "In main, value is " << value << endl;
cout << "Now calling doubleNum..." << endl;
doubleNum(value);
cout << "Now back in main, value is "<< value << endl;
return 0;
}
void doubleNum (int SrefVar)
{
refVar *= 2;
}
程序输出结果:
In main, value is 4
Now calling doubleNum...
Now back in main, value is 8
#include <iostream>
using namespace std;
//Function prototypes
void getNum(int &);
int doubleNum(int);
int main()
{
int value;
// Call getNum to get a number and store it in value
getNum(value);
value = doubleNum(value);
// Display the resulting number
cout << "That value doubled is " << value << endl;
return 0;
}
void getNum(int &userNum)
{
cout << "Enter a number: ";
cin >> userNum;
}
int doubleNum (int number)
{
return number *2;
}
程序输出结果:
Enter a number: 12
That value doubled is 24
& 符号。以下是使用 4 个引用变量形参的函数的原型:void addThree(int& num1, int& num2, int& num3, int& sum);
以下是函数定义:
void addThree(int& numl, int& num2, int& num3, int& sum)
{
cout << "Enter three integer values: ";
cin >> num1 >> num2 >> num3;
sum = num1 + num2 + num3;
}
但是请注意,addThree 函数只需要一个引用形参 sum,其他 3 个形参可以通过值接收它们的实参,因为函数没有改变它们。提示:应该仅在绝对需要时才使用引用变量。任何时候允许一个函数来改变函数之外的变量,其实都是在创建潜在的调试问题。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有