#include<stdio.h>
char *name(int n)
{
static char a[][10]={"Sunday","Monday","Tuesday"};
return a[n];
}
void main()
{
int x;
printf("input one number (0-2)");
scanf("%d",&x);
printf("Week No.%d is %s",x,name(x));
}
该程序是正确,但目前有两个疑问,如下:
1.static char a[][10]={"Sunday","Monday","Tuesday"};
为什么要定义成静态局部变量?即去掉static后错在什么地方
2.指针型函数的返回值是地址量,个人觉得
printf("Week No.%d is %s",x,name(x));
中name(x)表示的是一个地址,为什么可以直接输出其中的值?
不需要加"*"指针运算符么?
本人初学C语言,上面的提问中可能包含有错误,
而且是自己一个人在学习,不可能问其他的人请教
所以请解答的人能够尽量解答详尽,
谢谢了,不胜感激