我得到了一个必须填写的函数,它有以下输入参数:
char * replace( const char * text, const char * (*word)[2] )据我理解,函数应该返回一个字符串,并在第一个参数中给出一个字符串。
第二个参数是一个子数组,如果我没有弄错的话,每个子数组都有两个字符串,但是*(*name)[2]的含义是什么,它和**name[2]之间的区别是什么,以及如何在函数中调用这个数组?
编辑:如何在函数中使用这个数组?
发布于 2022-12-02 10:19:53
由于函数参数的数组衰减,函数的声明相当于:
char * replace( const char * text, const char * word[][2] )因此,第二个参数必须是const char*的2D数组。
int main() {
const char * words[1][2] = { {"hello", "world"} };
replace("some text", words);
}发布于 2022-12-02 00:32:38
word是指向const char (1地址)指针的数组2的指针,而const char **word2[2]是指向const char指针(2个地址)的2指针数组:
int main() {
const char *words[] = { "hello", "world" };
const char *(*word)[2] = &words;
const char **word2[2] = {
&words[0],
&words[1]
};
}你的第二个问题,“我如何称呼这个数组”,没有意义。使用一个数组(见上面)并调用一个函数:
char *result = replace("hello world", word);https://stackoverflow.com/questions/74649484
复制相似问题