C语言中一个小程序

#include<stdio.h>voidmain(){intx=2,y=1;voidf(intx,inty);f(x,y);printf("%d,%d",x,y);}v... #include <stdio.h>
void main()
{
int x=2,y=1;
void f(int x,int y);
f(x,y);
printf("%d,%d",x,y);
}
void f(int x,int y)
{
y=x+y;
x=x-y;
}
为什么最后输出值与f函数无关呀?
展开
 我来答
wchyumo2011
2016-05-08 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2986万
展开全部
函数的传递一般都是值传递,即是变量的值的拷贝,而不是变量本身,这里执行的函数虽然改变了f函数中x,y的值,但是对于主函数调用部分的变量值是没有任何影响的
追问
那怎样才能让x,y的值传递回去?
追答
使用指针

void f(int *x,int *y)
{
*y=*x+*y;
*x=*x-*y;
}
调用的时候用f(&x,&y);
百度网友2a0eaf9
2016-05-08 · 超过15用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:15.8万
展开全部
因为你使用的是形式参数
形式参数只是把那个数值传递进去了
更多追问追答
追问
那要怎样才能x,y 传递回去呢 ?
求教
追答

要把x,y传回去你需要指针

f(&x,&y);

void f(int *x,int *y)
{
    y=x+y;
    x=x-y;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式