c++ 使用指针传递和引用传递的时机
时间: 2023-09-05 17:13:09 浏览: 96
C++指针和引用
在 C++ 中使用指针传递和引用传递的时机取决于您想要实现什么样的行为。
当您想要在函数中修改传递给它的参数的值时,使用引用传递会更加方便。因为引用传递可以直接访问传递的变量,而无需进行指针解引用操作。例如:
```
void increment(int& x) {
x++;
}
int main() {
int value = 5;
increment(value);
std::cout << value; // 输出 6
return 0;
}
```
在上面的例子中,我们定义了一个名为 increment 的函数,该函数接受一个 int 类型的引用作为参数。在函数中,我们直接修改了传递的变量的值,而无需使用指针。在 main 函数中,我们传递了一个 int 类型的变量 value 给 increment 函数,并输出了最终的值 6。
另一方面,当您需要传递一个指针作为参数时,使用指针传递会更加方便。指针传递可以让函数访问传递的变量的地址,并可以对该地址进行操作。例如:
```
void swap(int* x, int* y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a = 5;
int b = 10;
swap(&a, &b);
std::cout << a << " " << b; // 输出 10 5
return 0;
}
```
在上面的例子中,我们定义了一个名为 swap 的函数,该函数接受两个 int 类型的指针作为参数。在函数中,我们通过解引用指针来交换传递的变量的值。在 main 函数中,我们传递了两个 int 类型的变量 a 和 b 的地址给 swap 函数,并输出了最终的值 10 和 5。
总之,使用指针传递和引用传递的时机取决于您想要实现什么样的行为。但通常情况下,如果您想要修改传递的变量的值,则使用引用传递会更加方便;如果您需要访问传递的变量的地址,则使用指针传递会更加方便。
阅读全文