结构体两种访问成员的方法:指针和直接访问,证明结构体标识和结构体标量可以同名


/*******************************************************************************************************************
 功能: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

*/

猜你喜欢

转载自blog.csdn.net/dynastydoubleh/article/details/81130393