建立自己的数据类型——C结构体归纳
一、建立结构体类型
1、申明结构体类型
struct 结构体名 { 成员表列(类型名 成员名;); }; 例如: struct Person { char name; int age; char sex; };
//定义了一个结构体类型——struct Person
struct为关键字,不可省略
结构体类型如同其他类型一样,在c程序中具有和其他类型相同的地位,就如同 int(整数类型) char(字符类型)一样
Zu:结构体名可以自由命名,成员表列也可以由现实情况自由定义。书写格式固定,内容自定义。
2、定义结构体类型变量
前言:
1)程序运行的时候只会对变量进行操作,而不会对类型进行操作,(比如,你什么时候对int double 进行过运算,赋值呢,对吧)所以我们要先定义变量,然后才能对其进行操作。
2)编译的时候对类型是不分配空间的,只会对变量分配存储空间。
3)结构体中的成员可以单独使用,作用与地位相当于普通变量。
4)要遵循:先定义结构体类型,后定义结构体变量。
三种方法定义结构体变量:
1)结构体类型名 变量名;
(类似于:类型名 变量名;)
struct Student { char name; int age; };//定义结构体类型 struct Student student1,student2;//定义了 student1,student2两个结构体变量 struct Student students[5];//定义了一个结构体数组,长度为5
结构体类型也可以定义数组。
2)申明结构体类型的同时定义变量
struct Student { char name; int age; }studen1,student2;//在定义struct Studentt这个结构体类型的同时定义了studen1,student2两个struct Student结构体变量 struct 结构体名 { 变量表列; }变量名表列;
//结构体数组也可这样定义
struct Student
{
char name;
int age;
}studens[5];//定义了一个结构体数组,长度为5
(struct 结构体名) 合起来称作一个结构体类型。
3)不定义类型名而直接定义结构体类型变量
无名结构体无法再次定义此类结构体变量。
strcut { char name; int age; }student1,student2;
//意义与上面的相同
Zu:该方式的定义方法意义不大,使用很少。
3、结构体变量的初始化和使用
这部分比较简单,不做介绍,任何一本c语言教科书都会进行讲解。
4、结构体指针也不做讲解。