_Phoebe__ 2022-01-07 18:23 采纳率: 96.9%
浏览 19
已结题

阅读程序写结果 为啥结果没有改变呢


//写出以下程序的输出结果
#include <stdio.h>
struct type
{
    int x;
    char c;
};
func(struct type b)
{
    b.x=20;
    b.c='y';
}
void main()
{
    struct type a ={10,'x'};
    func(a);
    printf("%d,%c",a.x,a.c);
}
  • 写回答

1条回答 默认 最新

  • 南七灵 2022-01-07 18:41
    关注

    得传地址才能改变
    值传递不能改变
    这样就行了

    
    //写出以下程序的输出结果
    #include <stdio.h>
    struct type
    {
        int x;
        char c;
    };
    void func(struct type *b)
    {
        b->x = 20;
        b->c = 'y';
    }
    void main()
    {
        struct type a = {10, 'x'};
        func(&a);
        printf("%d,%c", a.x, a.c);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 创建了问题 1月7日

悬赏问题

  • ¥15 r语言xlsx包下载后使用时出现了下列问题该如何解决
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询