| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:函数调用的问题
只看楼主 加入收藏
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
函数调用的问题
#include<stdio.h>                          加注释的地方不明白:在函数定义的时候并没有说明要返回一个值,
#include<stdlib.h>                                             这个roll的值怎么会被a, b两个变量接收?
                                              (程序在Turbo c 2.01能正确运行)
int g (void);

main()
{
    int a, b, sum=0, c, d;
   
    srand(time(NULL));
    for(d=1; d<=10; d++)
    {
        a=g();               /*这里为什么能接收 int g (void) 所返回的值*/
        b=g();               /*这里为什么也能接收 int g (void)所返回的值*/
        sum=a*b;
        printf("How much is %d times %d?\n", a, b);
        printf("The answer is: ");
        scanf("%d", &c);
        
        while(c!=-1)
        {
            if(c==sum)
            {
                printf("Very good!\n\n");
                break;
            }
            else
            {
                printf("No. Please try again.\n");
                printf("The answer is: ");
                scanf("%d", &c);               
            }
        }
        if(c==-1)
            break;
    }
    getch();
}

int g (void)               /*函数定义的时候并没有说明要返回一个值*/
{
    int roll;
    roll=rand()%10;
    return roll;         /*这里返回了一个0到9的整数值*/
}
搜索更多相关主题的帖子: 函数 
2010-03-24 11:45
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:3 
int g (void)
 红色部份告诉你函数g要返回一个int型值
 绿色部分告诉你函数g的参数是空,也就是不用传
2010-03-24 11:48
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
回复 2楼 ldg628
绿色部分告诉你函数g的参数是空,也就是不用传

不用传? 是指什么不用传?
还有传还返回是一个意思吗?
2010-03-24 22:18
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:1 
不用传就是指不用传任何参数;
返回值是指这个函数运行完后的值,相当于数学中一个函数表达式有值一样;
return roll就是说明该函数要返回一个值roll
2010-03-25 14:11
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:4 
函数的声明格式为:<返回值类型><函数名>([参数类型 形参变量])
      对应例子为:     int       g     (      void         )
                       int       g     (    int       a    )
()内也可以为空或void,表示该函数没有形参;
返回值类型为void型时说明该函数没有返回值,若为int说明返回值为整型数据
...
关键是你要清楚函数声明格式中各个符号分别表示声明!
2010-03-25 14:21
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:2 
回复 3楼 langren2526
传参数与返回值没有必然联系
type fun( .... )
1.type 就是你要返回的值的类型,一般会在函数fun里显性地用 return val,val的类型为type,你在外面可以接这个值,即 type a = fun(...) 即为 a = val
2.括号里面的内容为你传递的参数,格式是 <类型>  <变量名>,各个参数之间用逗号分隔,当函数定义为没有参数时,直接用()或者(void)

囧。。。
2010-03-25 14:24
u2jrmao
Rank: 2
等 级:论坛游民
帖 子:20
专家分:11
注 册:2010-3-25
收藏
得分:0 
路过 加油
2010-03-25 14:48
yl_524
Rank: 2
等 级:论坛游民
帖 子:35
专家分:43
注 册:2010-3-17
收藏
得分:0 
楼主对函数的定义不是很熟,由你在代码后面写的注释可以看出。5楼的答复针对你的问题说得很清晰了。当然其他楼说的也没有错。
2010-03-25 15:01
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
谢谢各位
2010-03-27 16:06
快速回复:函数调用的问题
数据加载中...
 
   



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

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