求大佬帮我看看哪里错了。。
#include <stdio.h>int jiaohuan (int a , int b)
{
int t ;
t = a;
a = b;
b = t;
}
void main()
{
int a,b,t;
scanf("%d %d",&a,&b);
printf("a=%d,b=%d\n",a,b);
jianhuan (a,b);
printf("a=%d,b=%d\n",a,b);
}
因为你定义的jiaohuan函数返回值是int 类型,一定要有return语句但你的程序没有return。
把int jiaohuan改为void jiaohuan应该就行了。 你把 函数的返回类型换成了 void 后是不是打印出来的 a, b 还是同样的?
传参要传地址jianhuan (&a,&b);
函数的定义就是 void jiaohuan (int *a , int *b)
int t ;
t = *a;
*a = *b;
*b = t; jiaohuan函数应该传入指针变量。
因为实参是形参的拷贝。想象有一个对手下非常不信任的老板,他的手上的文件是形参,手下的实际操作的文件都是从他手上复印的,因此可以理解成实参。无论手下如何努力修改复印的文件,都不可以改变老板文件内容。如果老板说“把柜子的那个文件改一下”,手下就可以改了。因为他告诉真实文件的地址,手下可以修改真实文件。指针就是这个地址
页:
[1]