Zeng_fh_ 2022-02-05 18:52 采纳率: 89.8%
浏览 18
已结题

这段代码怎么分析呀,关于指针的


#include <stdio.h>
int change(int*data)
{
    *data=*data%2;
    return(*data)+1;
}
main()
{
    int data=12;
    change(&data);
    printf("%d,",data);
    data=change(&data);
    printf("%d,",data);
}
  • 写回答

1条回答 默认 最新

  • 慕雪华年 新星创作者: C/C++技术领域 2022-02-05 19:10
    关注

    函数传入地址,在函数里面对data做出的更改会影响主函数里面的data数值
    具体见注释

    #include <stdio.h>
    int change(int*data)
    {
        *data=*data%2;
        return(*data)+1;
    }
    main()
    {
        int data=12;
        change(&data);//传入data地址
        printf("%d,",data);//打印更改后的data,12%2=0
        data=change(&data);
    //第二次调用,传入00%2=0,打印return的data+1,1
        printf("%d,",data);//data的值为0
    }
    

    如果对你有帮助,还请点个采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月5日