下面就为大家详细讲解一下“C语言 结构体”的使用攻略。
C语言 结构体
结构体是C语言中一种自定义的数据类型,用于存储一组多个不同类型的数据,相比于数组在存储不同类型数据时的不足,结构体能够更加灵活地组合多个类型的数据。一个结构体被定义后,可以使用点运算符 .
来访问其各个成员。
结构体的定义
定义一个结构体需要使用 struct
关键字,结构体跟类型名之间需要有空格,然后紧跟着一对大括号,括号内就是结构体的成员。下面是一个学生结构体的定义:
struct Student {
int id;
char name[20];
int age;
float score;
};
上述结构体定义了一个 Student
结构体类型,其成员包括学号、姓名、年龄、成绩,分别使用 int
、char
、int
、float
四种类型来表示。
结构体的初始化
结构体可以在定义的同时进行初始化,也可以在定义后通过赋值的方式进行初始化。下面是一个示例,可以看到结构体定义后,使用花括号 {}
包围起来的方式进行初始化:
struct Student tom = {1, "Tom", 20, 95.5};
结构体成员的初始化顺序是按照定义的顺序来的。
结构体的访问
使用点运算符 .
来访问结构体的各个成员。下面是一个示例:
printf("Tom's name is %s\n", tom.name); // 访问结构体成员 name
结构体的传递
结构体可以作为函数参数进行传递。在传递结构体时,可以使用结构体本身作为参数类型,也可以使用结构体的指针类型作为参数类型。下面是一个示例代码:
#include <stdio.h>
struct Student {
int id;
char name[20];
int age;
float score;
};
void printStudent(struct Student stu) {
printf("Student's ID: %d\n", stu.id);
printf("Student's name: %s\n", stu.name);
printf("Student's age: %d\n", stu.age);
printf("Student's score: %.2f\n", stu.score);
}
int main() {
struct Student tom = {1, "Tom", 20, 95.5};
printStudent(tom);
return 0;
}
在上述示例中,定义了一个 printStudent
函数,接收一个 Student
类型的结构体作为参数,并将其成员打印输出。
示例1
下面是一个结构体指针类型的示例:
#include <stdio.h>
struct Student {
int id;
char name[20];
int age;
float score;
};
void printStudent(struct Student *stu) {
printf("Student's ID: %d\n", stu->id);
printf("Student's name: %s\n", stu->name);
printf("Student's age: %d\n", stu->age);
printf("Student's score: %.2f\n", stu->score);
}
int main() {
struct Student tom = {1, "Tom", 20, 95.5};
struct Student *p = &tom;
printStudent(p);
return 0;
}
在上述示例中,定义了一个 printStudent
函数,接收一个 Student
类型的结构体指针作为参数,并将其成员打印输出。
示例2
下面是一个结构体数组类型的示例:
#include <stdio.h>
struct Student {
int id;
char name[20];
int age;
float score;
};
void printStudents(struct Student stus[], int len) {
for (int i = 0; i < len; i++) {
printf("Student %d:\n", i+1);
printf("ID: %d\n", stus[i].id);
printf("Name: %s\n", stus[i].name);
printf("Age: %d\n", stus[i].age);
printf("Score: %.2f\n", stus[i].score);
}
}
int main() {
struct Student stus[3] = {
{1, "Tom", 20, 95.5},
{2, "Jack", 21, 80.0},
{3, "Mary", 19, 88.5}
};
printStudents(stus, 3);
return 0;
}
在上述示例中,定义了一个 printStudents
函数,接收一个 Student
类型的结构体数组和数组的长度作为参数,并遍历数组将所有结构体成员打印输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 结构体 - Python技术站