/*******************************************************************************************************************
功能:1.证明结构体标识和结构体标量可以同名;
2.结构体两种访问成员的方法:指针和直接访问
3.结构体内嵌的使用方法
******************************************************************************************************************/
#include<stdio.h>
struct student
{
char a;
int b[1];
};
struct msg_t
{
struct student student1; //结构体内嵌结构体
int a;
float b;
char c;
double d;
};
int main(void)
{
struct msg_t msg_t;
struct msg_t *pmsg_t=NULL;
msg_t.student1.a =33;
msg_t.a=10; //直接访问
msg_t.b=7.2;
msg_t.c='q';
msg_t.d=43;
printf("msg_t.student1.a= %d\n",msg_t.student1.a);
printf("msg_t.a = %d\n",msg_t.a);
printf("msg_t.b= %f\n",msg_t.b);
printf("msg_t.c = %c\n",msg_t.c);
printf("msg_t.d = %2lf\n",msg_t.d);
pmsg_t = &msg_t; //指针访问
pmsg_t->a=8;
pmsg_t->b=7.4;
pmsg_t->c='r';
pmsg_t->d=62;
printf("pmsg_t->a = %d\n",pmsg_t->a);
printf("pmsg_t->b= %f\n",pmsg_t->b);
printf("pmsg_t->c = %c\n",pmsg_t->c);
printf("pmsg_t->d = %2lf\n",pmsg_t->d);
return 0;
/* 输出值
msg_t.student1.a= 33
msg_t.a = 10
msg_t.b= 7.200000
msg_t.c = q
msg_t.d = 43.000000
pmsg_t->a = 8
pmsg_t->b= 7.400000
pmsg_t->c = r
pmsg_t->d = 62.000000
*/