鱼C论坛

 找回密码
 立即注册
查看: 677|回复: 2

[已解决]指针做函数形参

[复制链接]
发表于 2020-8-30 23:30:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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;
}
此程序的输出结果是什么?为什么?具体运行过程是什么?
最佳答案
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并没有交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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并没有交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}
这样才是指针做函数形参
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表