形参就是函数参数,实参就是外部调用函数时传给函数的变量
用整型作为参数时,函数内部是无法修改外部传入实参的值的。可以改为指针类型
void sub(int * x,int * y)
{
int t = * x;
* x = * y;
* y = t;
}
调用的地方这么写:sub(&x3,&x4);
不是,因为这是值传递,值传递这里只影响当前函数下,而无法对主函数造成影响,如果有返回值的用return返回可以造成影响。
这种交换类的,我们通常使用指针的形式或者引用的形式来进行交换。
改正如下:
#include<stdio.h>
#include<string.h>
int x1=30,x2=40;
void sub(int *x,int *y);
int main()
{
int x3=10,x4=20;
sub(&x3,&x4);
sub(&x2,&x1);
printf("%d,%d,%d,%d",x1,x2,x3,x4);
}
void sub(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
测试图:
希望对题主有所帮助,可以的话,帮忙点个采纳!