指针做函数形参
int main(void){
int a=5,b=6;
int*pa=&a,*pb=&b;
void swap1(int x,int y)
swap1(a.b);
printf("After calling swap1:a=%d b=%d\n",a,b);
}
void swap1(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
此程序的输出结果是什么?为什么?具体运行过程是什么? 本帖最后由 baige 于 2020-8-30 23:35 编辑
输出结果:After calling swap1:a=5 b=6
你这个程序没有用指针做函数形参,然后在swap1()函数里的交换没有用,在swap1()函数里,x和y的值有交换,但swap1()函数调用结束后x,y就被释放了,主函数的a,b并没有交换 #include <stdio.h>
int main(void)
{
int a=5,b=6;
void swap1(int *x,int *y);
swap1(&a,&b);
printf("After calling swap1:a=%d b=%d\n",a,b);
}
void swap1(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
这样才是指针做函数形参
页:
[1]