MST

星途 面试题库

面试题:C语言指针数组与结构体类型值的复杂操作

定义一个结构体 `struct Student { char name[20]; int age; };`,然后创建一个结构体指针数组,数组大小为3,分别为三个学生信息赋值(姓名和年龄)。通过指针数组遍历并输出每个学生的姓名和年龄。阐述指针数组与结构体变量值类型之间是如何关联和交互的。
45.0万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

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

int main() {
    // 创建结构体指针数组
    struct Student* students[3];

    // 为三个学生信息赋值
    struct Student student1 = {"Alice", 20};
    struct Student student2 = {"Bob", 21};
    struct Student student3 = {"Charlie", 22};

    students[0] = &student1;
    students[1] = &student2;
    students[2] = &student3;

    // 通过指针数组遍历并输出每个学生的姓名和年龄
    for (int i = 0; i < 3; i++) {
        printf("Name: %s, Age: %d\n", students[i]->name, students[i]->age);
    }

    return 0;
}

指针数组与结构体变量值类型的关联和交互

  1. 关联:指针数组中的每个元素都是一个指针,它指向一个结构体变量。在上述代码中,students 数组中的元素分别指向 student1student2student3 这三个结构体变量。
  2. 交互:通过指针数组,我们可以方便地访问和操作这些结构体变量。使用 -> 操作符,可以访问指针所指向的结构体变量的成员。例如,students[i]->name 访问了第 i 个学生的姓名,students[i]->age 访问了第 i 个学生的年龄。这种方式使得我们可以通过数组的索引来统一管理多个结构体变量,提高代码的灵活性和可维护性。