C语言中结构体的类型及用法

30次阅读
没有评论

共计 1917 个字符,预计需要花费 5 分钟才能阅读完成。

在 C 语言中,结构体是一种用户自定义数据类型,它可以存储不同类型的数据并且允许程序员在一个单独的变量内组合它们。本文将详细介绍 C 语言中结构体的类型及用法。

什么是结构体

结构体是 C 语言中的一种复合数据类型,可以定义由不同数据类型组成的数据集合。结构体由多个成员组成,每个成员可以是不同类型的数据,比如整型、字符型、浮点型等。结构体的定义方式如下:

“`

struct structName {

dataType1 memberName1;

dataType2 memberName2;

dataTypeN memberNameN;

};

其中 structName 为结构体名,memberName 为成员名,dataType 为成员的数据类型。我们可以定义一个包含学生姓名、年龄和分数的结构体:

struct Student {

char name[20];

int age;

float score;

结构体的使用

定义结构体之后,我们就可以使用它来声明变量,例如:

struct Student stu1;

这样就创建了一个名为 stu1 的结构体变量。我们可以通过点操作符访问结构体中的成员,例如:

strcpy(stu1.name, “Tom”);

stu1.age = 18;

stu1.score = 90.5;

这样就为结构体变量 stu1 的成员赋值了。我们也可以用另一个结构体变量来初始化一个结构体:

struct Student stu2 = {“Alice”, 17, 95.0};

这样就初始化了一个名为 stu2 的结构体变量。我们也可以使用指针来访问结构体的成员:

struct Student *p = &stu1;

strcpy(p->name, “Bob”);

p->age = 19;

p->score = 88.0;

这里的 p 是一个指向结构体的指针,用“->”操作符来访问结构体的成员。

结构体数组

除了单个结构体变量外,我们还可以定义结构体数组来存储多个结构体变量,例如:

struct Student stuArr[3] = {

{“Tom”, 18, 90.5},

{“Alice”, 17, 95.0},

{“Bob”, 19, 88.0}

这样就创建了一个包含 3 个学生信息的结构体数组。我们可以通过下标来访问每个结构体变量的成员,例如:

printf(“%s %d %.1f\n”, stuArr[0].name, stuArr[0].age, stuArr[0].score);

这样就可以输出第一个学生的信息。

结构体指针

结构体指针是指向结构体的指针,与普通指针类似,可以通过指针来访问结构体的成员。例如:

struct Student *pStu = &stu1;

printf(“%s %d %.1f\n”, pStu->name, pStu->age, pStu->score);

这样就可以输出 stu1 的信息。

结构体作为函数参数

结构体可以作为函数的参数进行传递,这样可以方便地传递多个变量。我们可以定义一个打印学生信息的函数:

void printStu(struct Student stu) {

printf(“%s %d %.1f\n”, stu.name, stu.age, stu.score);

}

然后可以通过下面的方式来调用该函数:

printStu(stu1);

这样就会输出 stu1 的信息。

结构体嵌套

结构体可以嵌套定义,也就是在一个结构体中包含另一个结构体作为成员,例如:

struct Course {

float credit;

struct Score {

struct Student stu;

struct Course course;

这里定义了一个 Score 的结构体,其中包含了 Student 和 Course 两个结构体作为成员,以及一个分数 score。我们可以通过点操作符访问嵌套的结构体成员,例如:

struct Score sc = {stu1, {“C Programming”, 2.0}, 90.5};

printf(“%s %s %.1f\n”, sc.stu.name, sc.course.name, sc.score);

这样就可以输出 sc 的信息。

结构体的大小

结构体的大小是由其成员的大小决定的,每个成员的地址都是按照其在结构体中的定义顺序依次排列的,并且每个成员的地址都是按照其对齐方式对齐的。结构体的大小可以通过 sizeof 运算符来获取,例如:

printf(“%d\n”, sizeof(struct Student));

这样就可以输出 Student 结构体的大小。

本文介绍了 C 语言中结构体的类型及用法,包括结构体的定义、结构体的使用、结构体数组、结构体指针、结构体作为函数参数、结构体嵌套、结构体的大小等方面。结构体是 C 语言中非常常用的数据类型之一,掌握其用法对于编写高效的程序非常重要。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计1917字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)