鱼C论坛

 找回密码
 立即注册
查看: 2108|回复: 3

[已解决]求大佬帮我看看哪里错了。。

[复制链接]
发表于 2018-3-25 09:33:45 | 显示全部楼层 |阅读模式

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

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

x
#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);
}
最佳答案
2018-3-25 10:29:08
你把 函数的返回类型换成了 void 后是不是打印出来的 a, b 还是同样的?
传参要传地址  jianhuan (&a,&b);
函数的定义就是 void jiaohuan (int *a , int *b)
      int t ;
       t = *a;
       *a = *b;
       *b = t;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-25 10:19:05 | 显示全部楼层
因为你定义的jiaohuan函数返回值是int 类型,一定要有return语句但你的程序没有return。
把int jiaohuan改为void jiaohuan应该就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 10:29:08 | 显示全部楼层    本楼为最佳答案   
你把 函数的返回类型换成了 void 后是不是打印出来的 a, b 还是同样的?
传参要传地址  jianhuan (&a,&b);
函数的定义就是 void jiaohuan (int *a , int *b)
      int t ;
       t = *a;
       *a = *b;
       *b = t;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 10:29:54 | 显示全部楼层
jiaohuan函数应该传入指针变量。
因为实参是形参的拷贝。想象有一个对手下非常不信任的老板,他的手上的文件是形参,手下的实际操作的文件都是从他手上复印的,因此可以理解成实参。无论手下如何努力修改复印的文件,都不可以改变老板文件内容。如果老板说“把柜子的那个文件改一下”,手下就可以改了。因为他告诉真实文件的地址,手下可以修改真实文件。指针就是这个地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-29 16:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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