如何给包含结构体变量的结构体变量赋初值

如:struct date{char year[4];char[2];char[2]};
struct student{char name[10];int number;struct date birthday;}student1;
student1怎么赋初值啊,birthday那个地方。。
麻烦给个具体实例

声明和定义是无法赋值的,在student1的赋初值,你只需要把birthday的元素按顺序拆开,然后再赋值就可以了

比如你就可以这样
student1 = { "Liming",2009,1998,2,3}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-09

举个例子,就明白了:

#include<stdio.h>
struct Mem
{ int Num;
char Sex[30];
  int Age;
  char Major[50];
};
main()


struct Mem mem2;
struct Mem mem1={110192,"man",24,"机械制造及其自动化"};
printf("%d,%s,%d,%s",mem1.Num,mem1.Sex,mem1.Age,mem1.Major);
}

第2个回答  2011-04-12
在struct student里面加一个构造函数(例如下面这个),在里面可以给birthday赋初值 ···
student()
{
birthday.year[0] = 'a';
}追问

本人较菜,是在结构体里面就赋值吗,我是想定义好结构体变量之后可以给好几个学生变量赋值

追答

那就在主函数里面赋值·····
形如:student1.birthday.year[0] = ‘1’;

第3个回答  2011-04-15
在子函数中定义变量,还可以全局变量,直接赋值或用for循环赋值
第4个回答  2011-04-14
#include "stdafx.h"
#include <iostream>
using namespace std;
struct date{char year[4];char month[2];char day[2];};
struct student{char name[10];int number;struct date birthday;};
int main(int argc, char* argv[])
{
student student1={"caizheng",20,{1989,05,07}};
return 0;
}
相似回答