fanzhihao 发表于 2016-5-11 10:44:51

return是什么?/

int Listempty(Sqlist *L)
{
        if(0==L->length)
                return 1;
                else
                        return 0;
}

为什么这个函数可以简化成这个样子?

int Listempty(Sqlist *L)
{
        return(L->length==0);
}

康小泡 发表于 2016-5-11 14:56:54

如果你是被调用的函数里面有一个return,那就是返回调用它的那个函数了,如果你是主函数,你return了的话那程序就结束了。还有就是return后面可以跟一个值,也就是你返回给调用它的那个函数的值
int sum (int a , int b ){
int c = 0 ;
c = a + b ;
return c ;
}
int main (void){
    int a = 0,b = 0 ,c = 0;
   scanf("%d,%d",&a,&b);
   c = sum(a,b);
return 0;
}

skyseawing 发表于 2016-5-11 15:06:36

应该是   L->length==0 这个表达式,为真会返回1, 为假返回0, return 的 是表达式的值

铁岭小刚fishc 发表于 2016-5-11 18:38:05

等待问题答案过程中

ryxcaixia 发表于 2016-5-12 10:06:27

L->length==0 这个东西会返回一个值(右值), 无非就是0, 1
return 0 或者return 1 无可厚非

return 1反汇编代码大致如下
mov eax, 0x1
ret

ret这玩意就是
pop eip

沉默的话唠 发表于 2016-5-15 11:53:05

return后面的那一个表达式就是你之前定义的函数前面那个int。比如说y=f(x),return后面表达式的值就相当于f(x)的值,这个值赋值给y。当然,只是在调用的时候这么用。因为你这个返回值是个数据,只要是数据就有类型。这个int就是用来表示你这个f(x)返回的类型的。

zjk 发表于 2016-5-15 12:38:21

简单点说就是return就是说,你用一个函数对吧,肯定是让它进行某些操作,你要这些操作干嘛?就是在屏幕上打印个什么东西吗?不是吧,你肯定需要这个操作得出来一个结果,那这个结果去干一些事情,对吧,那这个结果就由return来取出来的或者说返回出来的。

上山砍柴去 发表于 2016-5-16 22:48:05

目前只是初级学了python,在python里面是返回值,这个里面没看懂

impossible 发表于 2016-8-12 08:31:13

L->length==0返回的是一个bool值正好对应0,1

轮回的夏 发表于 2016-8-15 17:39:37

说得简单些,return就是返回你当前函数的值,就假如你的主函数调用了这个函数,这函数通过 if(0==L->length)这个语句来判断返回值是0还是1,如果是其他函数,返回的值也会不一样
假设你调用一个自己写的计算平方的函数,运用这个return这个语句来把这个计算平方的函数的值返回到主函数中
页: [1]
查看完整版本: return是什么?/