雨天Zz 发表于 2020-8-30 23:30:06

指针做函数形参

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:32:53

本帖最后由 baige 于 2020-8-30 23:35 编辑

输出结果:After calling swap1:a=5 b=6
你这个程序没有用指针做函数形参,然后在swap1()函数里的交换没有用,在swap1()函数里,x和y的值有交换,但swap1()函数调用结束后x,y就被释放了,主函数的a,b并没有交换

baige 发表于 2020-8-30 23:33:52

#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]
查看完整版本: 指针做函数形参