值传递跟地址传递有些晕了
程序代码:#include"stdio.h"
void main()
{
void swap(int *x,int *y);
int a=10,b=20;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("after swap\ta=%d,b=%d\n",a,b);
}
void swap(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
printf("in swap x=%d,y=%d\n",*x,*y);
}不明白为什么地址传递时双向的 值传递是单向传递
程序代码:void swap(int *x,int *y)
{
int *t;
t=x;
x=y;
y=t;
printf("in swap x=%d,y=%d\n",*x,*y);
}把swap函数改成这样,为什么跟值传递一个样了 形参的值交换了但是实参的值没有变 这不也是传的地址么?










C语言里都是值传递