在函数中传递指向char的语法:语法错误

时间:2015-11-23 01:13:35

标签: c++ pointers pointer-to-pointer pointer-to-array

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

explicit specialization: syntax error?

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

以下是在主程序下宣布的:

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

下一行打印"功能"正如我所料:

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

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

函数调用:

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

功能声明:

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

    return temp;

感谢帮助!

1 个答案:

答案 0 :(得分: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;
}