| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:关于函数调用的问题,讲的详细点,全面点,我给100分。
只看楼主 加入收藏
wa5000
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-7-23
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:9 
关于函数调用的问题,讲的详细点,全面点,我给100分。
我有个小的问题,关于调用函数,什么时候用return,我看在指针章节的时候就没用return。
也能调用的么。还有调用一个函数,什么时候在主函数里面定义一下么?有的却不用,我运行的时
侯有时候行,有时候又说函数没有定义,这有什么区别了?
搜索更多相关主题的帖子: 函数 
2009-08-01 01:25
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:10 
如果你不想运行return后的代码就用return直接跳出本函数

比如一个获得型函数  在函数里获得了需要的数据后  后面的代码不需要运行了  就 return:

int func()
{
   int a;
   if(a = 获得成功) return a;
   获得失败;
}

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2009-08-01 09:49
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:5 
如果你熟悉调试程序的话  将可以很方便的看到程序运行的每个细节
vc的话用F10单步跟踪调试 就是程序的每一句代码都会停下来  让你看仔细了

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2009-08-01 09:51
wa5000
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-7-23
收藏
得分:0 
回复 3楼 flyue
谢谢你给的提示 , 我想问一下 在指针中 为什么不用 return 也能返回 在调用函数用一个 指针变量 ,是跟void 有关么、还有调用一个函数  要 在 main 函数 定义一下所调用的函数 , 有的 却可以直接用 , 这有什么区别了
2009-08-02 02:41
renjian12345
Rank: 1
来 自:西安
等 级:新手上路
帖 子:13
专家分:6
注 册:2009-8-2
收藏
得分:5 
指针中是直接对指针指向的内存中的变量进行操作,即使不返回任何数值,内存中的数据已经经过了相应的变动,此时跳出函数继续对指针指向的数据进行操作即可
单一的调用函数是对函数中形参的操作,而实参本身(即贮存于相应内存中的数据)并未参与操作,所以跳出函数后,内存中的数未发生变化
若要对其进行操作则需要return返回计算值
2009-08-02 11:41
feixiangmada
Rank: 1
等 级:新手上路
帖 子:6
专家分:6
注 册:2009-8-2
收藏
得分:5 
如果调用函数是在main()函数后面编写的,程序前面需要声明,如果在程序开始先编写完调用函数那么后面在main()函数使用,函数前面就不用再声明了
那个指针函数有的也需要return啊,最近我在看链表,那里面最后就return head;使用了return啊,void函数最后不用也不能使用return函数,void函数本身没有返回值
2009-08-02 17:29
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:5 
以下是引用feixiangmada在2009-8-2 17:29的发言:

...使用了return啊,void函数最后不用也不能使用return函数,void函数本身没有返回值 ...


下面的程序在VC6和linux下的GCC均编译通过:
程序代码:
#include <stdio.h>

void foo()
{
    printf("this is just a test function\n");

    return;
}

void main(void)
{
    foo();

    return;
}


现在一般对于 void 返回类型的函数也推荐使用 return;返回。

[[it] 本帖最后由 prankmoon 于 2009-8-2 19:23 编辑 [/it]]
2009-08-02 19:22
wa5000
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-7-23
收藏
得分:0 
回复 3楼 flyue
你能举 一个指针不要return的例子么

[[it] 本帖最后由 wa5000 于 2009-8-4 01:59 编辑 [/it]]
2009-08-04 01:09
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:0 
ls的,我擅自帮版主举了个指针不要return的例子,不知恰当与否:

#include <stdio.h>
#include <stdlib.h>

void foo(int *n)
{
    *n = (*n) * 5;
}

int main(void)
{
    int number = 5;
 
    foo(&number);
    printf("%d\n", number);

    return 0;
}

输出:
25

foo函数就没要return。
2009-08-04 05:09
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
以下是引用prankmoon在2009-8-2 19:22的发言:



下面的程序在VC6和linux下的GCC均编译通过:

#include <stdio.h>

void foo()
{
    printf("this is just a test function\n");

    return;
}

void main(void)
{
    foo();

    return;
 ...


gcc会报warning的。

生命不熄,战斗不止.
2009-08-04 09:19
快速回复:关于函数调用的问题,讲的详细点,全面点,我给100分。
数据加载中...
 
   



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

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