关于return 0的问题
我所了解的是在主函数中(main函数)return 0;是正常的结束的意思,要是return一个非零的值就是非正常的结束的意思
但是我今天写了一个程序 感到了很迷茫了 就是在自己定义的返回值的类型为char类型的自定义函数 如果要是不在第50行return
一个返回值得时候 就会有一个 warning C4715: 'change' : not all control paths return a value 提示 我在50行加了return 0 之后就
没有了警告 我想要知道的是 明明是返回类型为char 但是返回了一个0 为什么不会报错 我刚开始的时候想到的是 因为
char 类型 和 int 类型 是一样嘛 所以0 也是对的嘛 但是我又有了一点的疑惑 就是在这个自己定义的函数里面的 return 0
会不会也像main函数那样是意味着正常结束呢 我好疑惑啊
# include <stdio.h>
char change(int i);
int main()
{
int score;
char rank;
printf("please the score:\n");
scanf("%d", &score);
if (score >=0 && score <=100)
{
rank = change(score);
putchar(rank);
}
else
printf("data error");
printf("\n");
return 0;
}
char change(int i)
{
int a;
a = i / 10;
switch(a)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
return 'D';
case 6:
case 7:
return 'C';
case 8:
return 'B';
case 9:
case 10:
return 'A';
}
/* return 0; */ //50行
}