引用作为函数形参
时间: 2023-09-02 14:09:42 浏览: 53
在函数中引用作为形参可以实现传递参数时不进行复制,而是直接传递参数的地址,这样可以减少内存的使用,提高程序的效率。使用引用作为函数形参的语法如下:
```cpp
void functionname(datatype& parametername) {
// function body
}
```
其中 `datatype` 是参数的数据类型,`parametername` 是参数的名称,前面加上 `&` 表示这是一个引用类型的参数。
例如,下面的代码定义了一个函数 `swap`,它的两个形参都是整型的引用:
```cpp
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
```
在函数内部,我们使用了一个临时变量 `temp`,然后将 `a` 的值赋给 `temp`,再将 `b` 的值赋给 `a`,最后将 `temp` 的值赋给 `b`,从而实现了两个整数的交换。注意,这里的 `a` 和 `b` 是引用类型的参数,在函数内部修改它们的值会直接影响到函数外部的变量。因此,调用 `swap` 函数时传递的参数必须是变量的地址,而不是常量或表达式的值。
相关问题
引用作为函数形参举例
当我们需要在函数中使用另一个函数的输出值时,可以将该函数作为参数传递给另一个函数。这种函数作为参数传递给另一个函数的方式称为函数引用。
例如,假设我们有一个函数 `square` 用来计算一个数的平方:
```python
def square(x):
return x * x
```
现在我们需要编写一个函数,用来计算一组数字的平方和。我们可以将 `square` 函数作为参数传递给这个函数,代码如下:
```python
def sum_of_squares(numbers, square_func):
total = 0
for n in numbers:
total += square_func(n)
return total
```
这里的 `sum_of_squares` 函数接受两个参数,一个是列表 `numbers`,另一个是函数 `square_func`。函数的主要逻辑是遍历列表并使用传入的函数 `square_func` 对每个元素进行平方运算,然后将结果累加到 `total` 变量中。最后返回 `total` 的值。
现在我们可以调用 `sum_of_squares` 函数来计算一组数字的平方和,同时传递 `square` 函数作为参数:
```python
numbers = [1, 2, 3, 4, 5]
result = sum_of_squares(numbers, square)
print(result)
```
这里的输出结果是 `55`,即输入列表中每个数字的平方和。
5]用引用作为函数形参来实现两个实参变量的值互换。
可以使用以下代码来实现两个实参变量的值互换:
```
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
```
在这个函数中,我们使用了两个整数的引用作为函数的形参。通过传入实参变量的引用,函数可以直接修改实参变量的值。在函数中,我们使用一个临时变量来存储其中一个变量的值,然后将其中一个变量的值赋给另一个变量,最后将临时变量的值赋给另一个变量,从而实现了两个变量值的互换。