.分别用c++设计使用引用、值形参和指针形参作为形参的函数,比较不同形参的调用方法。
时间: 2024-10-09 07:01:34 浏览: 46
在C++中,我们可以分别创建一个使用引用、值形参和指针形参作为参数的函数,并理解它们之间的区别:
**1. 使用引用作为形参:**
```cpp
void modifyByReference(int& arg) {
arg = 5; // 直接修改引用指向的变量
}
int main() {
int num = 10;
modifyByReference(num); // 函数会直接改变num的值
cout << "After calling the function: " << num << endl; // 输出:15
return 0;
}
```
引用传递不会复制数据,而是提供对原始值的别名。
**2. 使用值形参作为形参:**
```cpp
void modifyByValue(int arg) {
arg = 5; // 在函数内部,arg是一个新的局部变量副本,不影响原值
}
int main() {
int num = 10;
modifyByValue(num); // 函数不会改变num的值,输出还是10
cout << "After calling the function: " << num << endl;
return 0;
}
```
值传递意味着每次函数调用都会创建一个新的临时副本。
**3. 使用指针作为形参:**
```cpp
void modifyByPointer(int* ptr) {
*ptr = 5; // 指针可以直接修改指向的内存位置,所以改变了原值
}
int main() {
int num = 10;
modifyByPointer(&num); // 修改指针所指向的地址,num变为15
cout << "After calling the function: " << num << endl;
return 0;
}
```
指针传递的是变量的地址,因此函数可以访问并修改该地址的值。
**
阅读全文