我的问题与我之前的帖子有关:
显式专门化:语法错误?
我正试图将指向字符的指针数组作为一个函数的参数(稍后我将把它合并到上一篇文章中的一个专门函数中),但我无法正确理解语法。
以下是在主程序下声明的:
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;
}