9.1.2结构体变量的定义和初始化定义结构体变量的方法可以如下:。用已定义的结构体类型名定义变量。例如:struct studentwang,zhang。在定义结构体类型的同时定义结构体变量。例如:structstudent/*结构体类型名*1charname[1ol:/*结构体成员,以下都是*intage;char sex[3];char xh[11];charnation[2o];charaddress[2o];char tel[20];Jwang,zhang;
9.1.2 结构体变量的定义和初始化 定义结构体变量的方法可以如下: 用已定义的结构体类型名定义变量。例如: struct student wang,zhang; 在定义结构体类型的同时定义结构体变量。例如: struct student /* 结构体类型名*/ { char name[10]; /*结构体成员,以下都是*/ int age; char sex[3]; char xh[11]; char nation[20]; char address[20]; char tel[20]; }wang,zhang;
9.1.2结构体变量的定义和初始化不定义结构体类型名,直接定义结构体变量。例如:Dstructcharname[io];int age;char sex[3];char xh[11];char nation[2o];char address[2o];char tel[20];}wang,zhang;
9.1.2 结构体变量的定义和初始化 不定义结构体类型名,直接定义结构体变量。例如: struct { char name[10]; int age; char sex[3]; char xh[11]; char nation[20]; char address[20]; char tel[20]; }wang,zhang;
结构体类型的长度结构体类型的长度可以用sizeof运算符计算出来,形式为o sizeof(结构体类型名)或者o sizeof(变量名)如sizeof(struct student) 或sizeof(wang),在TC和vC下结果分别是:86和88
结构体类型的长度 结构体类型的长度可以用sizeof运算符计算出来,形式为: sizeof(结构体类型名) 或者 sizeof(变量名) 如sizeof(struct student) 或sizeof(wang),在TC和VC下, 结果分别是:86和88
(*)结构体长度和字节对齐问题对齐内存空间都是按照字节(byte)来划分的,虽然理论上对任何类型的变量的访问可以从任何地址开始,但实际情况并非如此,而是需要按照一定的规则在空间上排列,这就是对齐。对齐的规则与编译器和操作系统有关,没有统一的规则。例如,在VC下:struct studentcharc10000000char c;inta10000004int a;1;其实际存储如右图:
(*)结构体长度和字节对齐问题 对齐 内存空间都是按照字节(byte)来划分的,虽然理论 上对任何类型的变量的访问可以从任何地址开始,但实际情 况并非如此,而是需要按照一定的规则在空间上排列,这就 是对齐。对齐的规则与编译器和操作系统有关,没有统一的 规则。例如,在VC下: struct student { char c; int a; }; 其实际存储如右图:
结构体类型的嵌套struct date(int year;structstudentint month;1int day;charname[10];1 ;intage;struct studentcharsex[2];char xh[11];char name[10] ;structint age;4char sex[3];intyear;char xh[11];struct dateint month;birthday;intday,char nation[20];jbirthday;char address[20]char nation[20];char tel[20];charaddress[20];Jwang, zhang;chartel[20];Jwang,zhang;
结构体类型的嵌套 struct date { int year; int month; int day; }; struct student { char name[10]; int age; char sex[3]; char xh[11]; struct date birthday; char nation[20]; char address[20]; char tel[20]; }wang,zhang; struct student { char name[10]; int age; char sex[2]; char xh[11]; struct { int year; int month; int day; }birthday; char nation[20]; char address[20]; char tel[20]; }wang,zhang;