逐个初始化字段:这是最直接的方式,你可以逐个为结构体的每个字段进行初始化。
- struct Student {
- char name[50];
- int age;
- float marks;
- };
-
- struct Student student1 = {"Alice", 20, 89.5};
2.使用结构体字面值初始化:这种方式允许你在初始化时使用一个字面值来为结构体提供初始值
- struct Student student2 =
- {
- .name = "Bob",
- .age = 21,
- .marks = 90.5
- };
3.全局初始化:在全局范围内,你可以在变量声明时就进行初始化。
- struct Student student3 =
- {
- .age = 22,
- .marks = 92.5
- };
4.使用 memset
函数:这是一种通过内存操作的方式,使用 memset
函数对结构体进行初始化。但是,请注意,这种方法只能用于对所有字段都进行相同的初始化。
- struct Student student4;
- memset(&student4, 0, sizeof(student4));
- strcpy(student4.name, "Charlie");
- student4.age = 23;
- student4.marks = 91.5;
5.使用 memcpy
函数:与 memset
类似,memcpy
可以用于将一个结构体的内容复制到另一个结构体。这通常用于复制相同类型的结构体实例。
- struct Student source = {"David", 24, 93.0};
- struct Student target;
- memcpy(&target, &source, sizeof(source));
6.使用构造函数或初始化函数:在某些情况下,你可能希望将初始化过程封装在一个单独的函数中。你可以创建一个构造函数或者初始化函数来执行这个任务。
- void Student_init(struct Student* self, const char* name, int age, float marks) {
- self->name = name;
- self->age = age;
- self->marks = marks;
- }
-
- struct Student student5;
- Student_init(&student5, "Eve", 25, 94.5);