完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
void swap(int m,int n) { int temp; temp = m; m = n; n = temp; } main() { int x,y; x = 5; y = 10; swap(x,y); printf("%d,%dn",x,y); } 用这个swap函数,并不能将x,y的值对换,因为函数是值传递,请大家帮忙怎么理解这个程序,打不开思路了。 |
|
相关推荐
5个回答
|
|
值传递是将实参的值复制给形参,实参形参不是存在同一内存,所以改变不了。
你这里要地址传递(引用传递)才能实现交换xy的值。 void swap(int *m,int *n) { int temp; temp = *m; *m = *n; *n = temp; } main() { int x,y; x = 5; y = 10; swap(&x,&y); printf("%d,%dn",x,y); } 这样就能实现 |
|
|
|
你该传的是地址 重写调换函数,传入参数设为指针,学C语言最初的几个课程就该教了这些吧
|
|
|
|
对,在弄指针,就是感觉不传他的地址过去,根本没把值传过去
|
|
|
|
是的,是这样的,在看指针,书上面的例子,就是不明白,一定要传这两个数的地址才能实现交换
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4443 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
315浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
303浏览 2评论
314浏览 2评论
320浏览 2评论
356浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:46 , Processed in 0.915419 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号