c语言struct结构体

在C语言中,结构体(struct)是一种用户自定义的数据类型,用于将不同类型的数据组合在一起。结构体可以包含数据成员(变量)和成员函数(方法),使其成为一种灵活的数据封装方式。结构体的定义和用法如下:

结构体的定义

结构体的定义格式为:struct 结构体名称 {结构体所包含的成员变量;}

结构体可以包含不同类型的成员,例如整数、浮点数、指针等。

结构体只能包含成员变量,不能包含成员函数,但可以定义函数指针指向一个函数。

结构体的声明和初始化

声明结构体变量有两种方式:逐一赋值和列表初始化。

可以在定义结构体类型的同时声明结构体变量,也可以先定义结构体类型,再声明变量。

初始化结构体变量时,可以直接赋值,也可以逐个成员赋值。

结构体的成员访问

结构体成员的访问通过.运算符进行,例如:结构变量.成员名

结构体的对齐

每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。

程序员可以通过预编译命令pragma pack(n)来改变这一系数,其中n是指定的“对齐系数”。

示例

c<p>include <stdio.h><p>include <string.h></p><p>// 定义一个名为Student的结构体类型,包含id、name、score这3个成员变量<p>struct Student {<p> int id;<p> char name;<p> float score;<p>};</p><p>int main() {<p> // 定义两个Student的结构体变量<p> struct Student lucy, jack;</p><p> // 初始化结构体变量<p> lucy.id = 1;<p> strcpy(lucy.name, "Lucy");<p> lucy.score = 95.5;</p><p> jack.id = 2;<p> strcpy(jack.name, "Jack");<p> jack.score = 88.0;</p><p> // 输出结构体变量的信息<p> printf("Lucy's info: ID=%d, Name=%s, Score=%.1f\n", lucy.id, lucy.name, lucy.score);<p> printf("Jack's info: ID=%d, Name=%s, Score=%.1f\n", jack.id, jack.name, jack.score);</p><p> return 0;<p>}<p>

在这个示例中,我们定义了一个名为Student的结构体类型,包含idnamescore三个成员变量。然后,我们声明并初始化了两个Student结构体变量lucyjack,并输出了它们的信息。