输入数字1-7时对应星期几

#include 
 int main()
 {
     char *GetDay(int nWeekDay)
     {
         char *p;
         switch (nWeekDay)
         {
         case 1: p = "Monday"; break;
         case 2: p = "Tuesday"; break;
         case 3: p = "Wednesday"; break;
         case 4: p = "Thursday"; break;
         case 5: p = "Friday"; break;
         case 6: p = "Saturday"; break;
         case 7: p = "Sunday"; break;
         default: p = "Wrong"; break; 
         }
         return *p;
     }
     return 0;
 }

为什么运行后会出现这个啊。

img

-

你这是把函数写在main里面
然后你哪里输入了?
哪里输出了?

    int nWeekDay=0;
    scanf("%d", &nWeekDay);
    string p;
    switch (nWeekDay)
    {
    case 1: p = "Monday"; break;
    case 2: p = "Tuesday"; break;
    case 3: p = "Wednesday"; break;
    case 4: p = "Thursday"; break;
    case 5: p = "Friday"; break;
    case 6: p = "Saturday"; break;
    case 7: p = "Sunday"; break;
    default: p = "Wrong"; break;
    }
    cout << p;
    return 0;

第一,你的main函数返回了字符串,执行结束了
第二,结束前,你也一直没有调用打印函数对相关变量(就是变量p)进行打印
综上,终端不会打印p的内容

1、函数没调用
2、函数里面的指针p没分配内存就使用,肯定段错误,内存非法访问