结构体

1 结构图类型变量的定义和初始化。 

 

struct  结构体名

{

    类型标识符  成员名;

    类型标识符  成员名;

} 变量名表列; 

只有在声明了结构体变量以后系统才给结构体分配存储空间。

方法一 :

1 先定义一个  std_info的结构体且赋值 

2 后定义一个结构体类型数组 s,共有三个元素,即s[0]-s[2],每个数组元素都是结构体类型,即每个数组元素都包括结构体类型std_info 的三个成员

struct std_info 

{

    int no;

   char name[10];

   char sex;

   int score[3];

};

struct std_info s[3] = {{100,"ZhangYi",'f'},{100,"WangHong",'m',}.{102,"Lisan",'f'}};

 

方法二:

定义结构体类型的同时定义结构体类型数组s并赋初始值

 struct std_info 

{   int no;

    char name[10];

    char sex;

}s[3] = {{100,"ZhangYi",'f'},{100,"WangHong",'m',}.{102,"Lisan",'f'}};

 

方法三:

定义无名称的结构体类型的同时定义结构体类型数组s 并赋初值  

struct  

{

   int no ;

   char name[10];

   char sex;

 } s[3]={{100,"ZhangYi",'f'},{101,"WangHong",'m'},{102,"LiSan",'f'}};

 

2 访问结构体成员 

例子1 

#include<stdio.h>
#include<string.h>

int main(void)
{
struct std_info
{
int No;
float score;
}stu1;
//struct std_info stu1[0] = {123,1.2};
scanf("%d,%f",&stu1.No,&stu1.score);
printf("%d,%f\n",stu1.No,stu1.score);
}

 

例子2 

#include<stdio.h>
#include<string.h>

struct std_info
{
int num;
char color;
char type;

}car[] = {{101,'G','c'},
{210,'Y','m'},
{105,'R','l'},
{222,'B','s'},
{308,'P','b'}
};

int main(void)
{
int i;
printf("number color type\n");
for (i=0;i<5;i++)
printf("%-9d%-6c%c\n",car[i].num,car[i].color,car[i].type);
return 0;
}

 

使用结构体变量引用成员形式 

例 

struct student stu1;

struct student *p=&stu1;

stu1.num = 101; 等价于 (*p).num = 101;

 

以下三种形式等价

结构体变量名.成员名     stu.num = 101;

(*结构体指针名).成员名  (*p).num = 101;

结构体指针名-> 成员名    p->num = 101;

 

posted @ 2019-11-23 18:00  笑看定局  阅读(201)  评论(0)    收藏  举报