上一篇
c 初始化结构体
- 行业动态
- 2024-03-22
- 1
在C语言中,结构体是一种复合数据类型,它可以包含多个不同类型的成员,初始化结构体就是为结构体的成员赋予初始值,结构体的初始化可以在声明结构体变量时进行,也可以在声明结构体变量后进行,下面将详细介绍如何在C语言中初始化结构体。
1、声明并初始化结构体变量
在声明结构体变量的同时,可以为其成员赋予初始值,这种初始化方式要求所有成员按照声明顺序依次赋值,示例代码如下:
#include <stdio.h> // 定义一个结构体类型 struct Student { int id; char name[20]; float score; }; int main() { // 声明并初始化结构体变量 struct Student stu = {1, "张三", 90.5}; // 访问结构体成员并输出 printf("学号:%d ", stu.id); printf("姓名:%s ", stu.name); printf("成绩:%.2f ", stu.score); return 0; }
2、声明结构体变量后初始化
在声明结构体变量后,可以单独为其成员赋值,这种初始化方式要求使用结构体指针或结构体数组,示例代码如下:
#include <stdio.h> #include <string.h> // 定义一个结构体类型 struct Student { int id; char name[20]; float score; }; int main() { // 声明结构体变量并初始化部分成员(不推荐) struct Student stu; stu.id = 1; // 错误!不能这样赋值,需要使用指针或数组 strcpy(stu.name, "张三"); // 正确!可以使用字符串函数赋值 stu.score = 90.5; // 正确!可以直接赋值 // 访问结构体成员并输出 printf("学号:%d ", stu.id); printf("姓名:%s ", stu.name); printf("成绩:%.2f ", stu.score); return 0; }
3、使用结构体指针和数组初始化结构体变量
为了方便地为结构体成员赋值,可以使用结构体指针和数组,示例代码如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> // 定义一个结构体类型 struct Student { int id; char name[20]; float score; }; int main() { // 声明结构体指针和数组,并为其成员赋值(推荐) struct Student *stu_arr = (struct Student *)malloc(3 * sizeof(struct Student)); // 分配内存空间,大小为3个结构体的大小 for (int i = 0; i < 3; i++) { // 遍历数组,为每个元素赋值 stu_arr[i].id = i + 1; // 正确!可以直接赋值,使用指针或数组都可以 strcpy(stu_arr[i].name, "学生" + std::to_string(i + 1)); // 正确!可以使用字符串函数赋值,使用指针或数组都可以 stu_arr[i].score = (i + 1) * 10; // 正确!可以直接赋值,使用指针或数组都可以 } // 访问结构体成员并输出(使用指针) for (int i = 0; i < 3; i++) { // 遍历数组,访问每个元素的成员 printf("学号:%d, ", stu_arr[i].id); // 正确!使用指针访问成员,注意不要加星号(*)表示解引用操作符,否则会报错!(因为这里不需要解引用) printf("姓名:%s, ", stu_arr[i].name); // 正确!使用指针访问成员,注意不要加星号(*)表示解引用操作符,否则会报错!(因为这里不需要解引用) printf("成绩:%.2f, ", stu_arr[i].score); // 正确!使用指针访问成员,注意不要加星号(*)表示解引用操作符,否则会报错!(因为这里不需要解引用) printf(""); // 换行,美化输出结果(可选) } free(stu_arr); // 释放内存空间(可选) getchar(); // 等待用户按键(可选)返回操作系统(可选) */ <>void</class> initStudent(<struct Student* student) { /*...*/ }*/ >#include <stdio.h></class><br/><br/> struct Student {<br/> int id;<br/> char name[20];<br/> float score;<br/><br/>};<br/><br/> int main() {<br/> struct Student student1 = {1, "张三", 90.5};<br/> struct Student student2 = {2, "李四", 85.0};<br/> struct Student student3 = {3, "王五", 78.0};<br/> /* ... */<br/>}<br/><br/>上述代码展示了如何初始化一个结构体数组,并为每个结构体的成员赋值,这种方式可以使代码更简洁、易读。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/258926.html