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

Passing pointer-to-char in function: syntax error

本文关键字:指针 语法 错误 char 函数      更新时间:2023-10-16

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

显式专门化:语法错误?

我正试图将指向字符的指针数组作为一个函数的参数(稍后我将把它合并到上一篇文章中的一个专门函数中),但我无法正确理解语法。

以下是在主程序下声明的:

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;

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

函数调用:

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

函数声明:

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

感谢您的帮助!

哦,没关系。我想明白了: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;
}