举例说明如何在函数间传递指针。
时间: 2024-10-29 15:24:28 浏览: 22
在函数间传递指针非常常见,因为它允许我们将数据的地址作为参数传递,而不必复制整个数据结构。这在处理大型数据结构或者希望修改原数据的情况下特别有用。以下是一些示例:
**C++ 示例:**
**函数接收指针作为参数:**
```cpp
void modifyValue(int *value) {
(*value)++;
}
int main() {
int num = 5;
modifyValue(&num); // 将num的地址传给modifyValue
cout << num; // 输出6,因为num被函数修改了
return 0;
}
```
在这个例子中,`modifyValue` 函数接受一个整数指针,并通过解引用操作符修改指针所指向的值。
**函数返回指针:**
```cpp
int findMax(int arr[], int size) {
int *maxIndex = &arr[0]; // 假设数组第一个元素最大
for (int i = 1; i < size; ++i) {
if (arr[i] > *maxIndex) {
maxIndex = &arr[i];
}
}
return maxIndex; // 返回最大值的位置
}
int main() {
int numbers[] = {1, 3, 7, 2};
int *max = findMax(numbers, sizeof(numbers)/sizeof(numbers[0]));
cout << "Max index is: " << *max; // 输出最大的索引位置
return 0;
}
```
这里,`findMax` 函数返回了最大值的指针地址。
**相关问题--:**
1. 除了基本类型的指针,还可以传递哪种类型的指针?
2. 如何避免传递空指针到函数中?
3. 函数间传递指针有哪些潜在风险?
阅读全文