#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;
}
为什么运行后会出现这个啊。
-
你这是把函数写在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没分配内存就使用,肯定段错误,内存非法访问