竹逸 发表于 2015-11-1 16:30:27

坟贴

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

rt

yishizhiming 发表于 2015-11-1 19:54:37

你向swap函数中传递的是指向int类型的指针,但是在swap函数体中用来接受指针暂存的变量i是int,并不算指针类型。

想不出来 发表于 2015-11-1 20:23:23

第一你的swap函数里面,把一个指针类型给一个int型应该会报类型不匹配错误。
第二C语言是以传值的方式将参数传递给被调用函数的,你在swap里面的交换,不会改变实参的值,
你需要交换的是实参指向的变量,这样就可以交换了。
在swap里面这样写:int i;
i=*x;
*x=*y;
*y=i;这样就可以交换了,不可以直接交换地址的,需要交换地址指向的值

~风介~ 发表于 2015-11-1 20:58:06

好乱的代码, 好多错误~
用代码格式发出来,这样才方便别人给你修改 —— 点击笑脸旁“<>”符号即可输入代码。

wangchunchun 发表于 2015-11-3 17:46:17

交换了地址不会对数据改变,就好像你按值传进去不会有改变一样,应该是改变地址指向内存的内容才会改变。
页: [1]
查看完整版本: 坟贴