子函数中得出的两个变量如何被主函数调用(C语言)

假设子函数中通过公式得到两个变量值x,y,主函数中需要用到这两个值,该用什么方法调用?... 假设子函数中通过公式得到两个变量值x,y,主函数中需要用到这两个值,该用什么方法调用? 展开
 我来答
White_MouseYBZ
2015-10-01 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6660万
展开全部

需要从函数中返回多于1个变量值时,最常用、也较简单的办法是在主调函数中声明变量,把变量的地址传给被调函数,在被调函数中通过指针直接操作主调函数中的变量。如此题中在主调函数中声明x和y,把x和y的地址(指针)传给被调函数。举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
void f(int *x,int *y){
    *x=10;
    *y=34;
}
int main(void){
    int x,y;
    f(&x,&y);
    printf("x = %d\ny = %d\n",x,y);
    return 0;
}
leafallen
推荐于2018-04-12 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1169
采纳率:50%
帮助的人:1216万
展开全部
有两种常用的方法:
1.用一个结构体,返回一个结构体,包含xy两个变量
2.使用引用/指针
谢谢采纳
更多追问追答
追问
能给举个例子吗?谢谢!
追答
以求返回一个整数的平方和相反数为例吧
比如 typedef struct Value{int x;int y;}val;
val fun(int n)
{
val m;
m.x = n * n;//平方
m.y = -n; //相反数
return m;// 返回这个结构体
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bailangeaa
2012-05-25 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:100%
帮助的人:21.5万
展开全部
fun(int *x,int*y)
{ *x=*x+1;*y=*y+1; }
int main()
{
int a,b;
fun(&a,&b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一杯青茶到汉唐
2012-05-25 · TA获得超过1845个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:136万
展开全部
1楼正解~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式