1、函数参数:传值, 传引用, 传指针
值传递是将实参的值传递给形参(形参是实参的副本)
#include <iostream>
void swap_value(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int x = 10;
int y = 20;
swap_value(x, y);
std::cout << "x: " << x << ", y: " << y << std::endl; // 输出:x: 10, y: 20
return 0;
}
引用传递的是变量的内存地址,但是这个地址对用户隐藏了,不需要显式地使用&和*操作符。
① 书写实参时,不需要写&取地址符
② 引用在定义时必须初始化,所以在参数传递时不会有空指针的情况
#include <iostream>
using namespace std;
void swap_reference(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int main(int argc, char* argv[])
{
int x = 10;
int y = 20;
swap_reference(x, y);
cout << "x: " << x << ", y: " << y << endl;
return 0;
}
指针传递的是变量的地址,可以传递空指针nullptr
#include <iostream>
using namespace std;
void swap_pointer(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int x = 10;
int y = 20;
swap_pointer(&x, &y);
cout << "x: " << x << ", y: " << y << endl; // 输出:x: 20, y: 10
return 0;
}
浙公网安备 33010602011771号