连初级都算不上的代码小白 2023-04-19 21:48 采纳率: 52.4%
浏览 29
已结题

结构体变量初始化报错


#include<stdio.h>
struct stu
{
int a;
}stu1;
 stu1={5};    
int main()
{
    struct stu *p;
    p=&stu1;    
    printf("%d",p->a);
}

为什么会报错

img

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-04-20 11:57
    关注

    赋值与初始化是两个概念,初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而已一个新值来替代。赋值是语句,而初始化是在定义中的,定义和声明不是语句,语句是要在函数中才被执行的。修改如下,供参考:

    #include<stdio.h>
    struct stu
    {
        int a;
    }stu1;     //这里是声明、定义了一个结构体和一个结构体变量
    //stu1 = { 5 };  这是赋值语句,语句是要在函数中执行的,所以这句应移动到 main()函数中才被执行。
    int main()
    {
        stu1 = { 5 };
        struct stu* p;
        p = &stu1;
        printf("%d", p->a);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 能给我一些人生建议吗
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥30 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
  • ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
  • ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
  • ¥15 R语言shiny包和ncdf4包报错
  • ¥15 origin绘制有显著差异的柱状图和聚类热图
  • ¥20 simulink实现滑模控制和pid控制对比,提现前者优势