前言
欢迎来到我的博客
个人主页:北岭敲键盘的荒漠猫-CSDN博客
结构体概念简介
c语言数组是一些相同类型的数据的集合。
这个结构体就是一些可以是不同类型的集合。
比如描述班里的一个人,他可能需要名字(字符串),也需要年龄(整数)。
这种情况就需要用结构体。
结构体的定义
先声明,再定义
定义语法:
struct [结构体名称]{
    数据;
    数据;
    数据;
};案例演示:
#include <stdio.h>
int main(void)
{
    struct student_info
    {
        char name[20];
        int age;
        int score;
    };
    struct student_info info = {"张三", 19, 100};
    printf("%s\n", info.name);
    info.age = 20;
    printf("%d\n", info.age);
}
同时声明和定义
定义语法:
#include <stdio.h>
#include <string.h>
struct student_info
{
    char name[20];
    int age;
    int score;
} info;
int main(void)
{
    strcpy(info.name, "张三");
    puts(info.name);
    info.age = 20;
    printf("%d\n", info.age);
}结果演示:

typedef结构体起别名
typedef的用法
语法:
#include <stdio.h>
typedef int A;
int main(void)
{
    A num = 1;
    printf("%d", num);
}结果

描述:
就是我们定义这个typedef int A;。
他的意思就是可以用A来表示int。
那么下面A num就相当于int num。
typedef结构体起名
或者我们换一下思路。
我们把int换成结构体,那么不就实现了给结构体换名了吗?
语法:
typedef struct 结构体名
{
    数据
    数据
} 新名称;案例演示:
#include <stdio.h>
typedef struct sutdent
{
    int age;
    int score;
} student_info;
int main(void)
{
    student_info zhangsan;
    zhangsan.age = 18;
    zhangsan.score = 100;
    printf("%d", zhangsan.age);
}结构体数组
描述:就是结构体中的数据类型是数组。
案例演示:
这是用数组作为结构体数据的写法案例。
#include <stdio.h>
#include <string.h>
struct class_score
{
    char name[20][10];
    int age[20];
};
int main(void)
{
    int a;
    struct class_score one_class = {{"张三", "李四", "王二麻"}, {18, 19, 19}};
    for (int i = 0; i <= 5; i++)
    {
        printf("姓名:");
        puts(one_class.name[i]);
        printf("年龄:%d\n", one_class.age[i]);
    }
}结果如下:





















