A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ydy96315 中级黑马   /  2015-4-27 10:20  /  1256 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

其他代码就不贴上来了区了中间一段有疑问的
typedef struct {
    int year;
    int month;
    int day;
} Date;

Stu * s = [Stu new];
s->birthday={2000,10,10}; //为什么这样不可以

Date L  = {2000,10,10};
s->birthday=L;   //为什么这样就是正确的

6 个回复

倒序浏览
结构体对象指向了{2000,10,10},才能赋值给s->birthday,否则没有意义的。
回复 使用道具 举报
定义结构体变量的同时才能初始化
回复 使用道具 举报
可以看出 差别是第一段代码没有赋值给定义结构体数据类型,也就是说该{2000,10,10}对象没有定义数据类型。所以
回复 使用道具 举报
你定义类Stu的成员变量birthday时,该变量的数据类型肯定是Date类型,所以赋值时,要类型相对应才行。
回复 使用道具 举报
你那种方法只有在定义结构体时才可以,定义完了就不能用这种方法啦,
回复 使用道具 举报
应该定义一个birthday 类型的变量 用{2000,10,10}将其赋值,然后再用变量初始化
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马