C语言进阶,第4节-自定义类型详解(结构体
发布人:shili8
发布时间:2024-12-01 00:27
阅读次数:0
**C语言进阶**
================**第4 节 - 自定义类型详解**
-----------------------------
在 C语言中,自定义类型是指使用 `struct` 关键字定义的数据结构。这种数据结构可以包含多个变量,并且可以使用这些变量来存储和操作数据。
### 结构体的基本概念结构体是一种复杂的数据类型,它可以包含多个变量,包括整型、浮点型、字符型等各种类型的变量。每个变量都有一个特定的名称和类型,可以通过这个名称来访问和修改该变量。
### 结构体的定义结构体的定义使用 `struct` 关键字开始,然后紧接着是结构体的名称,后面跟着一对大括号 `{}`,用于包含结构体中的各个成员变量。每个成员变量都有一个特定的类型和名称。
cstruct 结构体名 { 类型 名称; 类型 名称; ... };
例如:
cstruct Person { int age; char name[20]; float height; };
在这个例子中,`Person` 是结构体的名称,它包含三个成员变量:`age`、`name` 和 `height`。
### 结构体的成员访问要访问结构体中的成员变量,可以使用点运算符(.)或箭头运算符(->),后面跟着成员变量的名称。
cstruct 结构体名 变量名; 变量名.成员变量名 = 值;
例如:
cstruct Person person; person.age =25; strcpy(person.name, "John"); person.height =1.75f;
在这个例子中,`person` 是一个 `Person` 结构体的实例,它包含三个成员变量:`age`、`name` 和 `height`。
### 结构体的初始化结构体可以使用圆括号 `{}` 初始化,每个成员变量都有一个特定的值。
cstruct 结构体名 变量名 = { 值1, 值2, ... };
例如:
cstruct Person person = { .age =25, .name = "John", .height =1.75f};
在这个例子中,`person` 是一个 `Person` 结构体的实例,它包含三个成员变量:`age`、`name` 和 `height`。
### 结构体的传递和返回结构体可以作为函数参数传递给函数,也可以作为函数返回值。
cvoid 函数名(struct 结构体名 *变量名); struct 结构体名 函数名();
例如:
cvoid printPerson(struct Person *person) { printf("Name: %s ", person->name); printf("Age: %d ", person->age); printf("Height: %.2f ", person->height); } struct Person getPerson() { struct Person person = { .age =25, .name = "John", .height =1.75f }; return person; }
在这个例子中,`printPerson` 是一个函数,它接受一个 `Person` 结构体的指针作为参数,并打印该结构体中的成员变量。`getPerson` 是另一个函数,它返回一个 `Person` 结构体。
### 结构体的应用结构体可以用于存储和操作复杂数据,例如:
* 数据库记录* 文件元信息* 网络包头* 等等例如:
cstruct Record { int id; char name[20]; float score; }; void printRecord(struct Record *record) { printf("ID: %d ", record->id); printf("Name: %s ", record->name); printf("Score: %.2f ", record->score); } int main() { struct Record records[10]; for (int i =0; i < 10; i++) { records[i].id = i +1; strcpy(records[i].name, "Record"); records[i].score =90.0f; } printRecord(&records[0]); return0; }
在这个例子中,`Record` 是一个结构体,它包含三个成员变量:`id`、`name` 和 `score`。`printRecord` 是一个函数,它接受一个 `Record` 结构体的指针作为参数,并打印该结构体中的成员变量。
### 结构体的总结结构体是 C语言中一种复杂数据类型,它可以包含多个变量,包括整型、浮点型、字符型等各种类型的变量。结构体可以用于存储和操作复杂数据,例如数据库记录、文件元信息、网络包头等。
结构体的定义使用 `struct` 关键字开始,然后紧接着是结构体的名称,后面跟着一对大括号 `{}`,用于包含结构体中的各个成员变量。每个成员变量都有一个特定的类型和名称,可以通过这个名称来访问和修改该变量。
结构体可以作为函数参数传递给函数,也可以作为函数返回值。结构体的应用包括存储和操作复杂数据,例如数据库记录、文件元信息、网络包头等。
总之,结构体是 C语言中一种强大的工具,可以帮助开发者更好地组织和管理代码,使得程序更加高效和易于维护。