c语言结构体输出有错误

img

img


第一张图片是运行结果,能解释一下为什么吗,代码哪里写错了,有几个值没有输出来,整型变量值也输出错误

供参考:

#include <stdio.h>
#include <stdio.h>
struct Mode {
    int  id;
    char name[16];
};
struct Filr {
    int  id;
    char name[16];
    struct Mode mode;
}filr = { 2003,"张三",{2004,"李四"}};
int main()
{
    printf("%d\n", filr.id);
    printf("%s\n", filr.name);
    printf("%d\n", filr.mode.id);
    printf("%s\n", filr.mode.name);
    return 0;
}


修改如下:


#include<stdio.h>
struct Mode
{
    int id;   //修改处,不应该用数组,定义一个int型变量即可
    char name[12];
};
struct Filr
{
    int id;    //修改处,不应该用数组,定义一个int型变量即可
    char name[12];
    struct Mode mode;
}filr = {
    2003,"张三",{2004,"李四"}
};
int main()
{
    printf("%d\n", filr.id);
    printf("%s\n", filr.name);
    printf("%d\n", filr.mode.id);
    printf("%s\n", filr.mode.name);
}