2301_78259678 2023-06-30 06:03 采纳率: 100%
浏览 29
已结题

为什么printf输出值还是1,2(语言-c语言)

img


调试时为什么a-3不会参与运算,b被赋值后为什么y不会改变,怎样更改printf输出才为-2,4。求解惑。

  • 写回答

5条回答 默认 最新

  • 创意程序员 2023-06-30 07:33
    关注

    a-3运算了,只是结果没地方存,丢了。
    b赋值了,仅限于函数内,不会影响外面的值。即原来的x,y还是原来的值。
    改为传变量的引用即地址,函数内修改这个地址的值,大概是这样:

    fun(int *a, int *b) {
      *a = *a -3;
      *b = 4;
    }
    

    调用:fun(&x, &y)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 7月8日
  • 已采纳回答 6月30日
  • 创建了问题 6月30日