C 语言结构体:数组、指针和数组指针详解及示例

本文详细讲解 C 语言中结构体数组、结构体指针和结构体数组指针的创建、赋值和访问操作,并提供一个示例程序来演示这些操作。

代码示例

#include <stdio.h>
#include <string.h>

// 定义结构体
typedef struct {
    int id;
    char name[20];
    int age;
} Person;

int main() {
    // 创建结构体数组
    Person people[3];

    // 赋值操作
    people[0].id = 1;
    strcpy(people[0].name, "Alice");
    people[0].age = 20;

    people[1].id = 2;
    strcpy(people[1].name, "Bob");
    people[1].age = 25;

    people[2].id = 3;
    strcpy(people[2].name, "Charlie");
    people[2].age = 30;

    // 访问操作
    for (int i = 0; i < 3; i++) {
        printf("Person %d: id=%d, name=%s, age=%d\n", i+1, people[i].id, people[i].name, people[i].age);
    }

    // 创建结构体指针
    Person *personPtr;

    // 赋值操作
    personPtr = &people[0];

    // 访问操作
    printf("Person 1: id=%d, name=%s, age=%d\n", personPtr->id, personPtr->name, personPtr->age);

    // 创建结构体数组指针
    Person (*peoplePtr)[3];

    // 赋值操作
    peoplePtr = &people;

    // 访问操作
    for (int i = 0; i < 3; i++) {
        printf("Person %d: id=%d, name=%s, age=%d\n", i+1, (*peoplePtr)[i].id, (*peoplePtr)[i].name, (*peoplePtr)[i].age);
    }

    return 0;
}

代码解析

  1. 结构体定义

    • 使用 typedef 定义了一个名为 Person 的结构体,包含 idnameage 三个成员。
  2. 结构体数组

    • 使用 Person people[3] 创建了一个包含 3 个 Person 结构体元素的数组 people
    • 通过 people[i].member 的方式访问数组中每个结构体的成员。
  3. 结构体指针

    • 使用 Person *personPtr 创建了一个指向 Person 结构体的指针 personPtr
    • 使用 &people[0] 将指针指向 people 数组的第一个元素。
    • 通过 personPtr->member 的方式访问结构体成员。
  4. 结构体数组指针

    • 使用 Person (*peoplePtr)[3] 创建了一个指向包含 3 个 Person 结构体元素的数组的指针 peoplePtr
    • 使用 &people 将指针指向 people 数组。
    • 通过 (*peoplePtr)[i].member 的方式访问数组中每个结构体的成员。

总结

本文详细讲解了 C 语言中结构体数组、结构体指针和结构体数组指针的创建、赋值和访问操作,并提供了示例程序来演示这些操作。希望本文能够帮助读者更好地理解和使用结构体在 C 语言中的应用。

C 语言结构体:数组、指针和数组指针详解及示例

原文地址: https://www.cveoy.top/t/topic/o4cG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录