c语言函数实参和形参
/****题目:输入a,b,c 三个数按从小到大的顺序输出*****/#include "stdio.h"
int exchange(int x,int y,int z);
void swap(int x ,int y);
int main()
{
int a,b,c;
printf("please input three numbers a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
exchange (a,b,c);
printf("%d%d%d",a,b,c);
return 0;
}
int exchange(int x,int y,int z)
{
if(x>y) swap(x,y);
if(x>z) swap(x,z);
if(y>z) swap(y,z);
return x,y,z;
}
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
/****我这样写的话,结果a,b,c的值为啥没有交换,是因为实参和形参是单向值传递的原因吗,求大佬解答,跪跪。。。****/ 对啊
你传的相当于是副本
副本改变了实参并不会改变
----------
可以用指针来间接改变 万千只cnm 发表于 2021-8-7 12:08
对啊
你传的相当于是副本
副本改变了实参并不会改变
明白了明白了
页:
[1]