c++ 如何向函数传递一个 n*m的char类型数组,且使得能在函数中直接修改,并在函数外可以获得修改结果
时间: 2024-10-28 13:11:49 浏览: 12
在 C++ 中,你可以通过将指向字符数组的指针作为函数参数来实现在函数内部修改数组并保持外部可见。这里是一个简单的例子:
```cpp
#include <iostream>
// 定义一个接受 char 类型二维数组指针的函数
void modifyArray(char (*array)[n * m], int n, int m) {
// 访问数组元素并进行修改
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
array[i][j] = '新字符'; // 这里假设你想替换成 '新字符'
std::cout << "Modified element at [" << i << ", " << j << "] to '新字符'" << std::endl;
}
}
}
int main() {
// 创建一个 n*m 的字符数组
const int n = 3, m = 4;
char myArray[n][m];
// 初始化数组
for (int i = 0; i < n; ++i)
for (int j = 0; j < m; ++j)
myArray[i][j] = '原字符';
// 将数组的地址传递给函数
modifyArray(myArray, n, m);
// 打印原始和修改后的数组内容
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j)
std::cout << myArray[i][j] << " ";
std::cout << "\n";
}
return 0;
}
```
在这个例子中,`modifyArray` 函数接收的是一个指向字符数组的指针 `array`。由于数组名本质上就是指向数组首元素的指针,所以在函数内部可以直接修改数组。在 `main` 函数中,我们可以看到修改后的数组内容。
阅读全文