c09_03.c

来自「it can help you know C++ souce program q」· C语言 代码 · 共 48 行

C
48
字号
/*结构体变量和结构体指针的关系*/
#include <stdio.h>

/*结构体类型定义,其中结构体date是结构体PERSON的成员变量*/
struct date
{
	int		month;		/*表示月,从1-12*/
	int		day;		/*表示日期,从1-31*/
	int		year;		/*表示年,从0000-2002*/
};

/*定义结构体类型,并且是复合(成员变量是结构体类型)类型*/
typedef struct
{
	int		No;				/*序号*/
	char	name[20]; 		/*姓名*/
	struct date  birthday;	/*出生日期*/
} PERSON;

int main()
{
	PERSON	Users; 		/*定义Users是一个结构体变量*/
	PERSON	*p;			/*定义*p是一个结构体指针*/

	printf("请输入结构体变量的信息:\n");
	printf("请输入序号:");
	scanf("%d",&(Users.No));		/* Users.No是整型变量 */
	printf("姓名:");
	scanf("%s",Users.name);			/* Users.name字符数组的名字,其表示地址 */
	printf("请输入生日日期(YYYY-MM-DD):");
	scanf("%d-%d-%d",&(Users.birthday.month),&(Users.birthday.day),
												&(Users.birthday.year));

	p = &Users;		/*将结构体变量Users的地址赋值给指针p*/

	printf("\n通过结构体变量输出的结果是:\n");
	printf("序号:%d\n姓名:%s\n生日:%d-%d-%d\n",
			Users.No, Users.name, Users.birthday.month, Users.birthday.day,
			Users.birthday.year);

	printf("\n通过结构体指针变量输出的结果:\n");
	printf("序号:%d\n姓名:%s\n生日:%d-%d-%d\n",
					(*p).No,(*p).name,(*p).birthday.month,(*p).birthday.day,
					(*p).birthday.year);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?