| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 923 人关注过本帖
标题:函数调用的问题
只看楼主 加入收藏
longxingxiu
Rank: 2
等 级:论坛游民
帖 子:73
专家分:64
注 册:2014-4-23
结帖率:91.67%
收藏
已结贴  问题点数:2 回复次数:16 
函数调用的问题
在函数调用的时候说,将实参传值给函数形参,函数实参不会改变,如果要在main函数中要想输出调用函数中定义的变量(比如数组或者结构体变量)该怎么调用呢?直接调用可以吗?那样会要求在main函数中先定义出这个变量,但是这个变量一旦定义,编译的时候又说没有赋初值,不赋予初值会出现下列提示,一旦附上初值就变成常量了。

比如
程序代码:
void s(int x,int y)
{
   int c,d;
   c=x+y;
   d=x*y;
}

void main()
{
    int a,b;
    int c;int d;
    scanf("%d,%d",&a,&b);
    s(a,b);
    printf("%d %d",c,d);

}


输入3,4
会提示
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 longxingxiu 于 2014-4-28 21:44 编辑 ]
搜索更多相关主题的帖子: 结构体 
2014-04-28 21:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你把main()中最後3行註釋了,逐行解除,每次解除一行就執行一次,看看下面那個報錯畫面在哪一行時出現,然後想一想怎麽解釋。

授人以渔,不授人以鱼。
2014-04-28 21:46
longxingxiu
Rank: 2
等 级:论坛游民
帖 子:73
专家分:64
注 册:2014-4-23
收藏
得分:0 
回复 2 楼 TonyDeng
每看懂,注释了?
2014-04-28 23:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果不明白“把……註釋掉”,就理解為“把……刪掉”。

授人以渔,不授人以鱼。
2014-04-28 23:47
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
/*  scanf("%d,%d",&a,&b);*/
    这样吧
2014-04-29 00:26
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
搞懂局部变量和全局变量就可以了。c,d是局部变量,不能直接在另外一个函数里面使用。(真心欢迎批斗)
2014-04-29 00:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
大多数情况下 函数都是使用eax 返回值
我给你一个使用形参返回的(指针)例子,也许你可以参考一下

程序代码:
#include <stdio.h>

void s(int x,int y,int* c,int* d)
{
   *c=x+y;
   *d=x*y;
}

int main()
{
    int a,b;
    int _c;
    int _d;
    scanf("%d %d",&a,&b);
    s(a,b,&_c,&_d);
    printf("%d %d",_c,_d);
    return 0;
}

DO IT YOURSELF !
2014-04-29 08:59
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:0 
一个是s中的局部变量,一个是main中的局部变量,他们两个中的c和d没有半毛钱关系的
2014-04-29 09:01
longxingxiu
Rank: 2
等 级:论坛游民
帖 子:73
专家分:64
注 册:2014-4-23
收藏
得分:0 
回复 7 楼 wp231957
就是说变量的话无法直接返回,但是指针可以是吗?
2014-04-29 11:49
longxingxiu
Rank: 2
等 级:论坛游民
帖 子:73
专家分:64
注 册:2014-4-23
收藏
得分:0 
回复 8 楼 Andrew_Lee
嗯,确实没关系。如果想返回调用函数中的变量,又不想用return的话,怎么办呢?楼上的那个是借助指针输出,不知道我理解的定义的变量因为是局部变量无法返回,但是借助指针可以对不对呢!
2014-04-29 11:51
快速回复:函数调用的问题
数据加载中...
 
   



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

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