首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >char * (*name)[2]作为函数参数

char * (*name)[2]作为函数参数
EN

Stack Overflow用户
提问于 2022-12-02 00:05:27
回答 2查看 51关注 0票数 0

我得到了一个必须填写的函数,它有以下输入参数:

代码语言:javascript
运行
复制
char * replace( const char * text, const char * (*word)[2] )

据我理解,函数应该返回一个字符串,并在第一个参数中给出一个字符串。

第二个参数是一个子数组,如果我没有弄错的话,每个子数组都有两个字符串,但是*(*name)[2]的含义是什么,它和**name[2]之间的区别是什么,以及如何在函数中调用这个数组?

编辑:如何在函数中使用这个数组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-12-02 10:19:53

由于函数参数的数组衰减,函数的声明相当于:

代码语言:javascript
运行
复制
char * replace( const char * text, const char * word[][2] )

因此,第二个参数必须是const char*的2D数组。

代码语言:javascript
运行
复制
int main() {
    const char * words[1][2] = { {"hello", "world"} };
    replace("some text", words);
}
票数 1
EN

Stack Overflow用户

发布于 2022-12-02 00:32:38

word是指向const char (1地址)指针的数组2的指针,而const char **word2[2]是指向const char指针(2个地址)的2指针数组:

代码语言:javascript
运行
复制
int main() {
    const char *words[] = { "hello", "world" };
    const char *(*word)[2] = &words;
    const char **word2[2] = {
        &words[0],
        &words[1]
    };
}

你的第二个问题,“我如何称呼这个数组”,没有意义。使用一个数组(见上面)并调用一个函数:

代码语言:javascript
运行
复制
char *result = replace("hello world", word);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74649484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档