鱼C论坛

 找回密码
 立即注册
查看: 3996|回复: 4

[已解决]坟贴

[复制链接]
发表于 2015-11-1 16:30:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 竹逸 于 2022-11-20 17:44 编辑

rt
最佳答案
2015-11-1 20:23:23
第一你的swap函数里面,把一个指针类型给一个int型应该会报类型不匹配错误。
第二C语言是以传值的方式将参数传递给被调用函数的,你在swap里面的交换,不会改变实参的值,
你需要交换的是实参指向的变量,这样就可以交换了。
在swap里面这样写:int i;
i=*x;
*x=*y;
*y=i;这样就可以交换了,不可以直接交换地址的,需要交换地址指向的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-1 19:54:37 | 显示全部楼层
你向swap函数中传递的是指向int类型的指针,但是在swap函数体中用来接受指针暂存的变量i是int,并不算指针类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-1 20:23:23 | 显示全部楼层    本楼为最佳答案   
第一你的swap函数里面,把一个指针类型给一个int型应该会报类型不匹配错误。
第二C语言是以传值的方式将参数传递给被调用函数的,你在swap里面的交换,不会改变实参的值,
你需要交换的是实参指向的变量,这样就可以交换了。
在swap里面这样写:int i;
i=*x;
*x=*y;
*y=i;这样就可以交换了,不可以直接交换地址的,需要交换地址指向的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-1 20:58:06 | 显示全部楼层
好乱的代码, 好多错误~
用代码格式发出来,这样才方便别人给你修改 —— 点击笑脸旁“<>”符号即可输入代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-3 17:46:17 | 显示全部楼层
交换了地址不会对数据改变,就好像你按值传进去不会有改变一样,应该是改变地址指向内存的内容才会改变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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