首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言結構體完整教學:定義、巢狀結構、陣列應用與學生資料管理範例

     編輯:關於C語言

C 語言結構體完整教學:定義、巢狀結構、陣列應用與學生資料管理範例

1. 基本定義與變數宣告

struct Student {
    long long id, phone;
    int score;
    char name[20], gender[4], class[20];
};
// 宣告變數
struct Student s1;
struct Student class[100]; // 結構體陣列

2. 初始化與存取

// 定義時初始化
struct Student s1 = {2023001, 13800001111, 95, "張三", "男", "CS101"};

// 指定成員初始化 (C99)
struct Student s2 = {.name = "李四", .score = 88};

// 存取成員
printf("%s: %d\n", s1.name, s1.score);

// 指標存取
struct Student *p = &s1;
printf("%s\n", p->name); // 等同 (*p).name

3. 巢狀結構:日期

struct Date { int year, month, day; };

struct Student {
    // ... 其他欄位
    struct Date birthday; // 嵌入
};

// 存取巢狀成員
s1.birthday.year = 2000;
printf("生日: %d-%02d-%02d\n", p->birthday.year, p->birthday.month, p->birthday.day);

4. 完整範例:學生資料管理

#include <stdio.h>

struct Date { int y, m, d; };
struct Student {
    long long id, phone;
    int score;
    char name[20], gender[4], class[20];
    struct Date birthday;
};

int main() {
    struct Student class[5];
    for (int i = 0; i < 5; ++i) {
        scanf("%lld %s %s %s %lld %d %d %d %d",
            &class[i].id, class[i].name, class[i].gender, class[i].class,
            &class[i].phone, &class[i].score,
            &class[i].birthday.y, &class[i].birthday.m, &class[i].birthday.d);
    }
    for (int i = 0; i < 5; ++i) {
        printf("%lld %s %s %s %lld %d %d-%02d-%02d\n",
            class[i].id, class[i].name, class[i].gender, class[i].class,
            class[i].phone, class[i].score,
            class[i].birthday.y, class[i].birthday.m, class[i].birthday.d);
    }
    return 0;
}

5. 相關型別

  • union (共用體):成員共享記憶體,節省空間。
  • enum (列舉):命名常數集合,增強可讀性。

掌握結構體是 C 語言進階的關鍵,為資料結構與系統程式設計奠基。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved