| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7170 人关注过本帖
标题:一个非void型函数可以没有return么?
只看楼主 加入收藏
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
结帖率:100%
收藏
 问题点数:0 回复次数:15 
一个非void型函数可以没有return么?
没有return会返回什么?
搜索更多相关主题的帖子: return 
2011-03-09 20:34
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
不返回吧 好像  我一直不明白return 0是神马意思以及为什么要返回个值啊

粗心是大敌
2011-03-09 20:37
king_kong
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:71
专家分:55
注 册:2010-9-9
收藏
得分:0 
可以的    在主函数中可以  但在其他函数是不可以的
2011-03-09 21:08
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
可以的。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-03-09 22:19
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
void func (void) //你指的哪个void

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-09 22:39
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
可以,不过得看你函数内部定义的内容,如:
int func()
{
    printf("of course you can!!");
}
则该函数返回的是printf函数内字符串的字符数,你可以调试一下!!
2011-03-09 22:54
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9011
专家分:53957
注 册:2011-1-18
收藏
得分:0 
3楼 说得对
C99规定,在,唯有在 int main() 函数中,如果不显式的写上return xxx,自动默认return 0;
比如
int main( int argc )
{
    if (argc == 1)
         return -1;
}
则不会报错,因为它相当于

int main( int argc )
{
    if (argc == 1)
         return -1;

    return 0;
}
2011-03-10 08:42
瓦药墙
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:218
专家分:556
注 册:2009-9-16
收藏
得分:0 
void func()
{
    //...
    return ;
}

有返回值的时候, 就要return一个值!

[ 本帖最后由 瓦药墙 于 2011-3-10 10:01 编辑 ]
2011-03-10 10:00
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
看什么编译器的吧

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-03-10 11:19
nettom
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-4-28
收藏
得分:0 
#include <stdio.h>

int hermit(int n, int x)
{

  if(n<=0)
    return 1;
  if (n==1) return 2*x;
  return (2*x*hermit(n-1,x)-2*(n-1)*hermit(n-2,x));
}

int hermit2(int n,int x)
{
    //int result=2*x;
    int prev=1,next;
    int result=2*x;

    if(n<=0) return prev;
    while(n>1)
       {
        next=prev;
        prev=result;
        result=2*x*prev-2*(n-1)*next;
        n--;
       }
//    return result;------>去掉了!!!
}


int main()
{
   int t;
   t=hermit2(4,2);
   printf("the answer is %d\n",hermit(4,2));
   printf("the answer is %d\n",hermit2(2,8));
   printf("the answer is %d\n",t);
   printf("the answer is %d\n",hermit2(0,8));
   return 0;
}

结果都一样:
the answer is 76
the answer is 254
the answer is 76
the answer is 1

环境:intel dsktop linux+gcc 4.3.0

难道编译器有智能?
2011-04-29 00:25
快速回复:一个非void型函数可以没有return么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012129 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved