c 语言中的结构体数组-ag捕鱼王app官网

当前位置:ag捕鱼王app官网 > > 编程语言 > c语言 >

c 语言中的结构体数组

作者:迹忆客 最近更新:2023/05/05 浏览次数:

本教程介绍了如何在 c 语言中创建一个结构体数组,它是多个结构变量的集合,每个变量都包含了不同实体的信息。


c 语言中的结构体数组

数组是同一数据类型的顺序集合,结构体是用户定义的数据类型。结构体数组的声明与原始数据类型的数组相同,但使用结构体有其元素的数据类型。

考虑一个名为 student 的结构体的例子,如下所示。

struct student
{
    int rollnumber;
    char studentname[10];
    float percentage;
};

我们可以像下面这样声明一个结构数组。

struct student studentrecord[5];

这里,studentrecord 是一个由 5 个元素组成的数组,其中每个元素的类型是 student 结构体。单个元素使用索引符号 [] 访问,成员使用点 (.) 运算符访问。

studentrecord[0] 指向数组的 0th 元素,studentrecord[1] 指向数组的 1th 元素。

同理,

  • studentrecord[0].rollnumber 指的是数组第 0 个元素中的 rollnumber 成员。
  • studentrecord[0].studentname 是指数组第 0 个元素中的 studentname 成员。
  • studentrecord[0].percentage 是指数组第 0 个元素的 percentage 成员。

在 c 语言中声明一个 struct 数组的完整程序如下。

#include#includestruct student
{
    int rollnumber;
    char studentname[10];
    float percentage;
};
int main(void)
{
    int counter;
    struct student studentrecord[5];
    printf("enter records of 5 students");
    for(counter=0; counter<5; counter)
    {
        printf("\nenter roll number:");
        scanf("%d",&studentrecord[counter].rollnumber);
        printf("\nenter name:");
        scanf("%s",&studentrecord[counter].studentname);
        printf("\nenter percentage:");
        scanf("%f",&studentrecord[counter].percentage);
    }
    printf("\nstudent information list:");
    for(counter=0; counter<5; counter)
    {
        printf("\nroll number:%d\t name:%s\t percentage :%f\n",
               studentrecord[counter].rollnumber,studentrecord[counter].studentname, studentrecord[counter].percentage);
    }
    return 0;
}

输出:

enter record of 5 students
enter roll number:1
enter name: john
enter percentage: 78
enter roll number:2
enter name: nick
enter percentage: 84
enter roll number:3
enter name: jenny
enter percentage: 56
enter roll number:4
enter name: jack
enter percentage: 77
enter roll number:5
enter name: peter
enter percentage: 76
   student information list
   roll number: 1		name: john		percentage:78.000000
   roll number: 2		name: nick		percentage:84.000000
   roll number: 3		name: jenny		percentage:56.000000
   roll number: 4		name: jack		percentage:77.000000
   roll number: 5		name: peter		percentage:76.000000

使用 c 语言中的 malloc() 函数创建一个 struct 数组

在 c 语言中,还有另一种方法可以制作 struct 数组,可以使用 malloc() 函数为 struct 数组分配内存。这就是所谓的动态内存分配。

malloc()(内存分配)函数用于动态分配一个大块的指定大小的内存。这个函数返回一个类型为 void 的指针。

返回的指针可以被转换为任何形式的指针。它用默认的垃圾值初始化每个块。

malloc() 函数的语法如下。

ptrvariable = (cast-type*) malloc(byte-size)

动态创建一个结构体数组的完整程序如下。

#includeint main(int argc, char** argv)
{
    typedef struct
    {
        char* firstname;
        char* lastname;
        int rollnumber;
    } student;
    int numstudents=2;
    int x;
    student* students = malloc(numstudents * sizeof *students);
    for (x = 0; x < numstudents; x)
    {
        students[x].firstname=(char*)malloc(sizeof(char*));
        printf("enter first name :");
        scanf("%s",students[x].firstname);
        students[x].lastname=(char*)malloc(sizeof(char*));
        printf("enter last name :");
        scanf("%s",students[x].lastname);
        printf("enter roll number  :");
        scanf("%d",&students[x].rollnumber);
    }
    for (x = 0; x < numstudents; x)
        printf("first name: %s, last name: %s, roll number: %d\n",students[x].firstname,students[x].lastname,students[x].rollnumber);
    return (0);
}

输出:

enter first name:john
enter last name: williams
enter roll number:1
enter first name:jenny
enter last name: thomas
enter roll number:2
first name: john	last name: williams		roll number:1
first name: jenny	last name: thomas		roll number:2

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在c中将整数转换为字符

发布时间:2024/01/03 浏览次数:131 分类:c语言

本教程介绍了在c中将整数转换为字符的不同方法。在c编程语言中,将整数转换为字符在各种情况下都很重要。在c中,字符是以ascii值表示的,因此转换过程相对简单。

发布时间:2023/05/07 浏览次数:364 分类:c语言

本文介绍了如何在 c 语言中使用 typedef enum。使用 enum 在 c 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

c 语言中的静态变量

发布时间:2023/05/07 浏览次数:167 分类:c语言

本文介绍了如何在 c 语言中使用静态变量。在 c 语言中使用 static 变量在函数调用之间保存变量值

c 语言中生成随机数

发布时间:2023/05/07 浏览次数:158 分类:c语言

本文演示了如何在 c 语言中生成随机数。使用 rand 和 srand 函数在 c 语言中生成随机数

发布时间:2023/05/07 浏览次数:129 分类:c语言

本文演示了如何在 c 语言中使用前缀增量与后缀增量运算符。c 语言中 i 和 i 记号的主要区别

发布时间:2023/05/07 浏览次数:275 分类:c语言

本文演示了如何在 c 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

发布时间:2023/05/07 浏览次数:177 分类:c语言

本文介绍了如何在 c 语言中使用位掩码。使用 struct 关键字在 c 语言中定义位掩码数据

发布时间:2023/05/07 浏览次数:212 分类:c语言

本文演示了如何在 c 语言中使用标准库排序函数。使用 qsort 函数对 c 语言中的整数数组进行排序

c 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:131 分类:c语言

本文介绍了如何在 c 语言中使用 extern 关键字。c 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图