在 c++++ 中,函数参数可以按值、引用或指针传递。按值传递仅复制变量的值,按引用传递直接修改原始变量,而按指针传递则通过内存地址修改原始变量。

C++ 函数中引用和指针传递示例讲解
什么是引用和指针?
引用和指针传递
立即学习“C++免费学习笔记(深入)”;
在 C++ 函数中,可以根据需要传递值、引用或指针。
按值传递
void swap(int a, int b) {
// 交换 a 和 b 的值
int temp = a;
a = b;
b = temp;
}在这个示例中,a 和 b 按值传递,即它们的值被复制到函数的参数 a 和 b 中。因此,函数内的任何更改都不会影响函数外的原始变量。
按引用传递
void swap(int& a, int& b) {
// 交换 a 和 b 的值
int temp = a;
a = b;
b = temp;
}在这个示例中,a 和 b 按引用传递,即它们在函数内部直接修改原始变量。因此,函数内对 a 和 b 的任何更改都会反映在函数外的原始变量上。
按指针传递
void swap(int* a, int* b) {
// 交换 a 和 b 的值
int temp = *a;
*a = *b;
*b = temp;
}在这个示例中,a 和 b 按指针传递,即它们指向原始变量的内存地址。因此,函数内对 *a 和 *b 的任何更改都会反映在函数外的原始变量上。
实战案例
计算两个整数的最大公约数的函数:
// 按值传递
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
// 按引用传递
int gcd(int& a, int& b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
// 按指针传递
int gcd(int* a, int* b) {
while (*b != 0) {
int temp = *b;
*b = *a % *b;
*a = temp;
}
return *a;
}以上就是C++ 函数中引用和指针传递示例讲解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号