0

我的问题与我之前的帖子有关:

显式专业化:语法错误?

我正在尝试将指向字符的数组作为参数传递给函数(稍后我将把它合并到上一篇文章中的专门函数中),但我无法正确使用语法。

在主程序下声明了以下内容:

char c0[30] = { "see if this works" };
char c1[30] = { "functions" };
char c2[30] = { "explicit specialization" };
char *d[] = { c0, c1, c2 }; 

下一行打印出我所期望的“functions”:

cout << "test print d[1] " << d[1] << endl;

下一步是测试我是否能够返回我想要返回的字符数组,但我的语法不正确。以下返回“s”(来自 c0)而不是整个字符数组:

函数调用:

cout << "string compare is " << compare2(*d, 3);

函数声明:

char compare2(char const arr2[], int n) {
    char temp;
    temp = arr2[0];

    return temp;

感谢帮助!

4

1 回答 1

0

哦,没关系。我想通了:D

指针声明:

char *(d[]) = { c0, c1, c2 };

函数调用:

cout << "string compare is " << compare2(d, 3);

函数定义:

char * compare2(char * const arr2[], int n) {
    char * temp;
    temp = *(arr2+2);

    return temp;
}
于 2015-11-23T01:32:14.303 回答