问题如代码🙏,输出函数为什么能直接使用地址,不是输入函数才会使用地址吗

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
char *day_name(int n);
printf("input Day No:\n");
scanf("%d",&i);
if(i<0) exit(1);
printf("Day No:%2d-->%s\n",i,day_name(i)); //day_name(i)不是地址吗,为什么在输出函数中能直接使用
return 0;
}
char *day_name(int n)
{
static char *name[]={"Error","Monday","Tuesday","Wednesday","Thursday","Friday","Satursday"};
return((n<1||n>7)?name[0]:name[n]);
}

是的,%s可以根据day_name(i)的地址读取一个字符串并显示出来