首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于return 的返回值有关问题

2013-09-28 
关于return 的返回值问题if()return 1elsereturn 0两个return 返回表示什么意思。return?[解决办法]retur

关于return 的返回值问题
if(  )
   return 1;
else
   return 0;
两个return 返回表示什么意思。 return?
[解决办法]
return可以返回任意值,值的意义要看你的代码本身了。有可能是类似bool值,表示true、false,也可能是错误代码,或者是其他可能。你没有给出具体环境,只能说条件成立返回1,不成立则返回0。

还有么就是一个返回不为void的函数,至少要有1个return。如果if里有一个return,那么else语句或if后的语句必须有另一个return,不然可能出现返回语句不能完全覆盖的情况。简单来说就是条件成立要return,不成立时也要有return
[解决办法]
在c语言中,我见过return的3种用法:
1、在有返回值的非主函数(main)中,return一个值作为返回值;
2、在不管有无返回值的非主函数(main)中,"return;"作为一条语句,作用是跳出当前函数,类比于break跳出当前循环;
3、在主函数中,return返回一个值,这个值用于调试,请看我举例的代码。

/*
*IDE:codeblocks 12.11
*OS:win7 sp2 x86
*/
#include <stdio.h>
int haha(int num)
{
    if(num>0)
    {
        return 1;
    }
           else if(num<0)
    {
        return -1;
    }
    else
    {
        return 0;
    }
}
void hello()
{
    printf("haha1\n");
    return; //跳出haha(),此语句后面的语句不执行
    printf("haha2\n");
}
int main()
{
    int num=0;
    int temp=0;
    hello();
    printf("input num:");
    scanf("%d",&num);
    switch(haha(num))
    {
    case 1:
        printf("num大于0\n");
        break;
    case -1:
        printf("num小于0\n");
        break;
    case 0:
        printf("num等于0\n");
        break;
    default:
        break;
    }
    //为查看效果,测试一和测试二只保留一个
    //测试一:
    printf("%d,%d\n",haha(num),temp); //返回输出的字符个数,当程序结尾的return 0被注释时,程序会返回此值
    //测试二:
    scanf("%d%d",&num,&temp); //返回成功接收的参数个数,失败返回-1,可用EOF表示,,当程序结尾的return 0被注释时,程序会返回此值
    //return 0; //当程序成功执行时,指定返回0,一般出错时返回-1
}

热点排行