如果我在C++里构造一个返回值为char型的函数,而我需要返回一个字符型的二维数组,那么再用此函数再另外一个函数相互调用时需要做什么
时间: 2023-05-27 09:06:16 浏览: 97
在C语言中,无法直接返回二维数组类型的值。但可以通过返回指向二维数组首元素的指针来实现类似的效果。
具体实现方式如下:
1. 在函数中定义一个二维数组,并将其初始化。
2. 定义一个指向二维数组首元素的指针,并将其指向该二维数组。
3. 将该指针作为函数返回值返回。
在调用该函数的另一个函数中,可以先定义一个指向二维数组首元素的指针,并将其赋值为调用该函数的返回值。然后就可以像使用普通的二维数组一样使用该指针。
示例代码如下:
```
#include <stdio.h>
char (*getCharArray())[3] { // 定义返回指针的函数
static char charArray[][3] = { // 定义二维数组并初始化
{'a', 'b', 'c'},
{'d', 'e', 'f'}
};
return charArray; // 返回指向二维数组首元素的指针
}
int main() {
char (*p)[3] = getCharArray(); // 定义指向二维数组首元素的指针,并赋值为函数返回值
printf("%c\n", p[0][0]); // 输出二维数组中的元素
printf("%c\n", p[1][2]);
return 0;
}
```
阅读全文