Linux C 编程教程第 27 部分 - 结构数组Linux C 编程教程第 27 部分 - 结构数组Linux C 编程教程第 27 部分 - 结构数组Linux C 编程教程第 27 部分 - 结构数组
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux C 编程教程第 27 部分 - 结构数组

在此页

  1. C 语言中的结构数组
  2. 结论

在这个正在进行的 C 编程教程系列中,我们最近一直在讨论结构。我们已经介绍了结构的基础知识,结构如何与函数一起使用,以及结构指针的概念。

现在,进一步扩展结构的概念,我们将讨论如何使用易于理解的示例来创建结构数组。

C语言中的结构数组

让我们开始吧。这是一个名为 student_details 的简单结构,如您所见,可用于存储学生的卷号和分数:

struct student_details{
int roll_no;
int marks;
};

现在,假设总共有 5 个学生,需求是接受用户输入这些学生的详细信息。那么为此编写代码的一种方法是:

#include <stdio.h>

struct student_details{
int roll_no;
int marks;
};

int main()
{
struct student_details obj1;
struct student_details obj2;
struct student_details obj3;
struct student_details obj4;
struct student_details obj5;
...
...
...

或者可能是这样的:

#include <stdio.h>

struct student_details{
int roll_no;
int marks;
};

int main()
{
struct student_details obj1, obj2, obj3, obj4, obj5;
...
...
...

现在,如果您遵循上述方法,就没有什么坏处。出现的唯一问题是这些方法是否可扩展。我的意思是,如果您需要创建 50 个对象或实例而不是 5 个,那会怎样呢?在那种情况下,遵循这些方法肯定会使代码编写和维护变得更加复杂。

那么有解决办法吗?嗯,是。更好的方法是创建一个 student_details 结构数组。就是这样:

struct student_details obj[5];

下面是一个使用这个结构数组的完整程序:

#include <stdio.h>

struct student_details{
int roll_no;
int marks;
};

int main()
{
struct student_details obj[5];
int i;

for(i=0;i<5;i++)
{
printf("\n Enter roll number: ");
scanf("%d", &(obj[i].roll_no));
printf("\n Enter marks (out of 100): ");
scanf("%d", &(obj[i].marks));
}

printf("\n Here's the data you've entered::");

for(i=0;i<5;i++)
{
printf("\n Roll number: %d", (obj[i].roll_no));
printf("-- Marks: %d", (obj[i].marks));
}


return 0;
}

所以在这里,我们使用了之前讨论过的 student_details 结构,并创建了一个包含 5 个该类型对象的数组。然后,程序要求用户输入学生学号并一一标记。每个学生对应的信息存储在结构数组的每个实例中。最后,存储的信息作为输出打印回给用户。

这是我案例中的输出:

Enter roll number: 1 

Enter marks (out of 100): 67

Enter roll number: 2

Enter marks (out of 100): 73

Enter roll number: 3

Enter marks (out of 100): 56

Enter roll number: 4

Enter marks (out of 100): 52

Enter roll number: 5

Enter marks (out of 100): 85

Here's the data you've entered::
Roll number: 1-- Marks: 67
Roll number: 2-- Marks: 73
Roll number: 3-- Marks: 56
Roll number: 4-- Marks: 52
Roll number: 5-- Marks: 85

使用这种方法,您可以轻松地扩展您的程序。也就是说,即使有50个学生的信息需要存储和打印,你只需要将数组的大小增加到50,相关的改动很少。其余代码保持不变。因此,简而言之,与我们在教程开头讨论的方法相比,您可以在使用数组时轻松处理可伸缩性。

结论

在本教程中,我们介绍了结构数组的基本概念。使用易于理解的示例,我们讨论了为什么结构数组很重要、何时使用它以及如何使用它。建议您在您的机器上试用本教程中的示例。如有任何疑问或疑问,请在下方发表评论。

©2015-2025 艾丽卡 support@alaica.com