变量生存期疑问,该如何解决

变量生存期疑问
#include   <stdio.h>

char   *day_name(int   n);      
   
int   main()
{    
    int   i;    
    printf( "input   Day   No:\n ");    
    scanf( "%d ",&i);    
    if(i <0)   exit(1);    
    printf( "Day   No:%2d--> %s\n ",i,day_name(i));    
}    

char   *day_name(int   n)
{    
    char   *name[]={   "Illegal   day ",    
                                                "Monday ",    
                                                "Tuesday ",    
                                                "Wednesday ",    
                                                "Thursday ",    
                                                "Friday ",    
                                                "Saturday ",    
                                                "Sunday "
                                              };    
    return((n <1||n> 7)   ?   name[0]   :   name[n]);    
}

指针数组name在指针函数day_name内定义的,那么在main中调用完好不是没了么?

调试怎么会OK???

------解决方案--------------------
name的内容实在静态存储区存放的,day_name函数结束仍然有效,所以可以得到内容。
------解决方案--------------------
name所拥有的内容存储在程序一运行就创建的静态区内(知道程序结束之前都是存在的)
所以其作用域是global
------解决方案--------------------
字符串是常量哦
存在静态区
所以...