请问这个关于指针数组的程序报错是什么意思
问题描述:
问题遇到的现象和发生背景
刚学指针数组
运行结果及报错内容
运行总是报错说 [Error] too many arguments to function 'char* comp()'
但是当我直接用 p=*(str+day)的时候就可以运行
我的解答思路和尝试过的方法
/*输出自己想要星期的英文*/
#include<stdio.h>
#include<string.h>
char *str[8]={"Sunday","Monday","Tuesday","Wednesday" ,"Thursday","Friday","Saturday",NULL};
char *comp(char *table[],int day) //返回值为指针的函数
{
return *(table+day);
}
int main( )
{ int day;
char string[10];
char *comp(),*p;
scanf("%d",&day);
//p=*(str+day);
p=comp(str, day); //调用函数,返回对应星期的字符串的首地址
printf("%s",p); //输出
return 0;
}
请问这是为什么?
答
char *comp()
这个不需要,把它拿掉
答
14行的 char *comp()的用法有问题,
因为你上面已经定义过这个 comp这个函数,
14行的comp如果你是想要声明函数,那它应该跟5行的一样,是带两个参数的才对
答
13行函数声明没写参数
13行改为
char *comp(char *table[],int day),*p;