<C语言>结构体理解

来源:互联网 发布:小米平板刷windows包 编辑:程序博客网 时间:2024/06/05 09:32

题目:关于C语言结构体的理解

作者:wsg

时间:2017年8月14日


一、先来看看理论点的不好理解的结构体定义:

{
·概念:结构体(structure)是由各种类型组成的的复合数据类型。
·定义一个结构体类型的语法如下:
struct <结构体标签名称> {成员列表};
·定义一个结构体变量的3种形式:
①常规形式:
struct <结构体标签名称> {成员列表};
struct <结构体标签名称> <结构体变量名称>;
②与类型定义同时进行:
struct <结构体标签名称> {成员列表}<结构体变量名>;
③直接定义:
struct  {成员列表}<结构体变量名>;
}


成员列表里面可以包含各种数据类型,数组,指针。


二、我自己的对结构体定义的理解:
{
如何定义?如何去理解结构体类型和变量?
先举一个例子:
·先定义一个名叫“学生”的结构体,这个“学生”包括姓名,年龄,成绩等属性,这些属性在结构体里面共同属于“学生”。
struct student
{
char name[32];
int age;
double score;
};
·再定义一个结构体变量
struct student Bill, Michael;
**====这个结构体变量可以这样去理解:有一个名叫Bill(比尔)和一个叫Michael(迈克尔)的学生,结构体里面包含了他们各自的姓名,年龄,成绩等。====**
·当然,也可以同时定义一个结构体类型和该类型的结构体变量,如:
struct student
{
char name[32];
int age;
double score;
}Phoebe, Michael;

三、如何把Bill或者Michael这个学生的信息录入到student这个结构体里面去呢:(初始化)
①struct student Bill={“bill”, 17, 92.5};


②struct student Bill;
strcpy(Bill.name, “Bill”);  //Bill.name表示的就是Bill的姓名,中间用.标识,下同。
Bill.age = 17;
Bill.score = 92.5;

③struct student
{
char name[32];
int age;
double score;
}Bill = {“Phoebe”, 17, 92.5};


ps:结构体变量部分初始化:
struct student
{
char name[32];
int age;
double score;
}Bill = {.name=“Phoebe”, .age=17};
struct student Michael = {.age=25, .score=88.5};
Bill = Michael ; //将学生Michael的age和score赋给学生Bill,因为是部分初始化,所有name(名字)并没有赋过去。




PS:还有结构体数组和结构体指针,感兴趣的童鞋可以在评论里面问我。水平有限,若有错误,欢迎指正!
原创粉丝点击