关于指针函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/07 08:37:00
char *month_name(int n)
{
char *name[]=
{"illegal month","January",
"February","March","April","May","June",
"July" ,"August","September","October","November","December"

};
return (n<1||n>12) ? name[0]:name[n];

}

void main()
{
int i,k;
for(i=0;i<=12;i++)
{

printf("month=%s \n",month_name(i)); //为什么这里是 month_name(i)而不是*month_name???

}
getch();
}

month_name是函数名,month_name(i)返回一个c字符串指针,prinft() 的"%s"对应的就是一个c字符串指针。*month_name(i)取返回字符串的第一个字符;*month_name无意义,不同编译器返回结果可能不同,由于函数名实际是指向函数程序入口的指针,*month_name可能返回函数的入口地址。