结构体的定义以及初始化

一.结构体定义类型,变量的定义
struct是关键字,是结构体类型的标志,在结构体里可以定义相应的成员信息,同时,结构体同样要以分号结尾

struct person
{
char name[20];
char sex[20];
int age;
int weight;
};

struct person psn1,psn2;//此处是先定义结构类型,再定义变量

struct person
{
char name[20];
char sex[20];
int age;
int weight;
}psn1,psn2;//再定义结构体类型的同时定义变量

当然我们也可以用 typedef 对其进行起别名的操作,以下则date为Date的别名

typedef struct Date
{
   int year;
   int month;
   int day;
  }date;

二.结构体变量的初始化

struct person
{
  char name[20];
  char sex[20];
  int age;
}psn={"zhangsan","男“,18};


或者

struct person
{
   char name[20];
   char sex[20];
   int age;
 };

 struct person psn={"李四”,“男”,18};  //psn可以是一个数组,如psn[5]就是表示初始化5个人的信息

三.指向结构体变量的指针

#include
#include
#include
typedef struct person
{
 char name[20];
 char sex[20];
 int age;
}psn;

int main()
{
psn *p;//定义一个指针p
p=(psn*)malloc(sizeof(psn));//注意要为其分配空间 
char na[20];
scanf("%s",&na);
strcpy(p->name,na);
printf("%s\n",p->name);
return 0;
}

或者

int main()
{
psn stu;
psn *p;
p=&stu;//此处无需再为p分配空间,因为p已指向结构体的变量stu
stu.age=10;
printf("%d",(*p).age);
printf("%d",p->age);
printf("%d",stu.age);
return 0;
}

四.引用结构体变量的三种方法

1.<结构体变量名>.<成员名>;//stu.age
2.(*<结构体指针>).<成员名>;//(*p).age
3.(<结构体指针>-><成员名>;//p->age

你可能感兴趣的:(结构体的定义以及初始化)