- 传值(Pass by Value):
- 适用于基本数据类型或小型数据结构(如整数、浮点数、结构体等)。
- 传递的是值的副本,不会影响原始变量。
- 不需要修改原始值,只是需要值的副本时,可以使用传值。
- 传指针(Pass by Pointer):
- 适用于需要修改传递的参数值,或者在函数内部分配内存时。
- 可以避免复制大型数据结构,提高性能。
- 需要注意空指针的情况,避免访问非法内存。
- 传引用(Pass by Reference):
-
适用于需要修改传递的参数值,且希望修改在函数外部可见。
-
不会复制数据,性能更好。
-
需要注意传递的变量在函数外部必须存在,避免悬空引用。
-
传值:用于简单数据类型,如整数、浮点数等。
void increment(int num) { num++; }
-
传指针:用于修改传递的参数值,或者传递动态分配的内存。
void modify(int *ptr) { *ptr += 10; }
- 传引用:用于修改传递的参数值,并使得修改在函数外部可见。
```c++
void updateValue(int &val) {
val *= 2;
}