普陀山宝陀讲寺主持:编程的个问题?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/07 08:41:57
#include <stdio.h>

struct date
{
int month;
int day;
int year;
};
//birthday={2,10,1985};

struct student
{
int num;
int age;
struct date birthday;

}student1={????};

int main()
{
printf("student's message is num:%d,age:%d,birthday:%d\n",student1);
printf("day=%d\n",birthday.day);

}

其中打问号的地方是我不知道 的地方?
请问怎么对它进行初始化?

你最后的main调用结构有点问题,我已经给你改了,全部代码用VC6.0测试过,给你参考:
#include <stdio.h>
struct date
{
int month;
int day;
int year;
};
//birthday={2,10,1985};

struct student
{
int num;
int age;
struct date birthday;

}student1={1,2,{1,2,3}};

int main()
{
printf("student's message is num:%d,age:%d,birthday:%d\n",student1.num,student1.age,student1.birthday);
printf("day=%d\n",student1.birthday.day);

}

--------------------------
不推荐你在定义结构体的时候对结构体初始化,因为这么做可能会导致逻辑错误但编译器查不出的问题.还有结构体你把他当成一块内存就可以了,任何一块内存你都可以使用{}在申明的时候对他初始化,所以就有上面的例子了
enjoy it~

既然想初始化数据,不如使用类的构造函数来初始化。
#include <stdio.h>
struct date
{
int month;
int day;
int year;
};
//birthday={2,10,1985};

class student
{
int num;
int age;
struct date birthday;
student(){num=1;age=2;birthday.day=10;birthday.month=2;birthday.year=1985;}
};

int main()
{
printf("student's message is num:%d,age:%d,birthday:%d\n",student1.num,student1.age,student1.birthday);
printf("day=%d\n",student1.birthday.day);

}