在函数中使用指针作为参数传递可以让函数修改指针所指向的数据,或者通过指针返回额外的结果。以下是使用指针作为参数传递的方法:
1. 传递指针作为参数:在函数定义时,将参数声明为指针类型,然后将指针作为实参传递给函数。这样函数内部就可以通过指针来访问和修改指针所指向的数据。
```C++
void modifyValue(int* ptr) {
*ptr = 10; // 修改指针所指向的值
}
int main() {
int num = 5;
modifyValue(&num); // 将指针传递给函数
// 此时num的值被修改为10
return 0;
}
```
2. 传递指向指针的指针:有时候需要在函数内部修改指针本身,可以使用指向指针的指针来实现。在函数定义时,将参数声明为指向指针的指针类型,并传递指针的地址作为实参。
```C++
void modifyPointer(int** pptr) {
int* ptr = new int; // 创建一个新的指针
*ptr = 10;
*pptr = ptr; // 修改指针本身
}
int main() {
int* ptr = nullptr;
modifyPointer(&ptr); // 将指针的地址传递给函数
// 此时ptr指向一个新的内存空间,其中存储的值为10
delete ptr; // 记得释放内存
return 0;}
```
3. 使用引用作为指针参数:C++语言中,还可以使用引用作为指针参数来实现类似的效果。在函数定义时,将参数声明为引用类型,并将指针作为实参传递给函数。
```C++
void modifyValue(int& ref) {
ref = 10; // 修改引用所绑定的值
}
int main() {
int num = 5;
modifyValue(num); // 将指针作为实参传递给函数
// 此时num的值被修改为10
return 0;
}
```