qq_63085760
2021-11-25 23:23
采纳率: 50%
浏览 8

C语言中交换字符饭运行结果不同

数组中交换a[1],a[2]的字符但打出的结果不同,而且为什么第一个运行结果是1,2而不是2,1

img

img

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 爱上bug的小姐姐 2021-11-26 00:49

    这是一个典型的参数传递问题。实参向形参单向传递,形参不能向实参传递。
    也就是说,你调用swap函数时,a[1]和a[2]的值确实发生了交换,但是这种交换仅限在swap函数内,当swap函数执行完毕后,内存释放后,记录不被保存,所以本质上说,主函数中的a[1]和a[2]并没有发生交换(函数没有将交换结果返回)。
    解决方法:

    swap(&a[1],&a[2]);
    
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题