为什么我这个C语言程序运行完结果还是a=3,b=5?不是应该互换吗?求解答

#include<stdio.h>intf(inti,intj){intp;if(i<j){p=i;i=j;j=p;returni,j;}}intmain(void){i... # include <stdio.h> int f(int i, int j) { int p; if (i < j) { p = i; i = j; j = p; return i, j; } } int main(void) { int a, b;... # include <stdio.h> int f(int i, int j) { int p; if (i < j) { p = i; i = j; j = p; return i, j; } } int main(void) { int a, b; a = 3; b = 5; f(a, b); printf("a = %d\nb = %d\n", a, b); return 0; } 为什么我这个C语言程序运行完结果还是a=3,b=5?不是应该互换吗? 求解答 展开 展开
 我来答
刀煦敖景辉
2020-04-02 · TA获得超过4103个赞
知道小有建树答主
回答量:3170
采纳率:28%
帮助的人:477万
展开全部
你传的参数是值,在函数里交换完后,会释放空间,而且你并没有接收函数传出的数据。
#
include
<stdio.h>
void
f(int*
i,
int*
j)
{
int
p;
if
(*i
<
*j)
{
p
=
*i;
*i
=
*j;
*j
=
p;
return;
}
}
int
main(void)
{
int
a,
b;
a
=
3;
b
=
5;
f(&a,&b);
printf("a
=
%d\nb
=
%d\n",
a,
b);
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式