鱼C论坛

 找回密码
 立即注册
查看: 1723|回复: 1

[已解决]struct 为什么报错呀

[复制链接]
发表于 2019-4-22 21:04:45 | 显示全部楼层 |阅读模式
5鱼币
struct学习过程中的问题
#include<stdio.h>
  
struct Date{
    int year;
    int month;
    int day;
};

struct Book{
    char title[128];
    char author[40];
    float price;
    struct Date date;
    char publisher[40];
};

int main(){
        struct Book book;
        book.date = {
                .year = 2017,
                .month = 11,
                .day = 11
         };

        printf("日期为%d-%d-%d\n",book.date.year,book.date.month,book.date.day);
}
输出结果:
test.c:19:14: error: expected expression(期望的表达???)
        book.date = {2017,11,11};
                    ^
1 error generated.

是结构体嵌套,不能部分初始化吗??我改成这样也是报错:
        struct Book book;
        book.date = {2017,11,11};

求大神指教。。。。。
最佳答案
2019-4-22 21:04:46
#include <stdio.h>
  
struct Date
{
        int year;
        int month;
        int day;
};

struct Book
{
        char title[128];
        char author[40];
        float price;
        struct Date date;
        char publisher[40];
};

int main(void)
{
        struct Book book = {.date = {.year = 2017, .month = 11, .day = 11}};
        printf("日期为 %d-%d-%d\n", book.date.year, book.date.month, book.date.day);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-22 21:04:46 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
  
struct Date
{
        int year;
        int month;
        int day;
};

struct Book
{
        char title[128];
        char author[40];
        float price;
        struct Date date;
        char publisher[40];
};

int main(void)
{
        struct Book book = {.date = {.year = 2017, .month = 11, .day = 11}};
        printf("日期为 %d-%d-%d\n", book.date.year, book.date.month, book.date.day);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表