Linux兵工厂
认证:普通会员
所在专题目录 查看专题
7.C语言信息读写基础
8.C语言数值数组
9.一文搞懂C语言指针
10.C语言字符和字符串,你知多少?
11.搞懂结构体、联合、typedef
12.C语言变量的作用域,你知多少?
作者动态 更多
void关键字有哪些用法
2星期前
C语言如何提高程序的可读性?
2星期前
C语言程序由哪些部分组成?
2星期前
C语言的入口函数
2星期前
ANSI C的编译限制有哪些?
2星期前

11.搞懂结构体、联合、typedef

在C语言中,结构体(struct)、联合(union)和typedef是用于组织和定义数据类型的关键概念。以下是这些概念的详细解释:

结构体(Struct):

结构体是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起,形成一个新的数据类型。

结构体的定义:

#include <stdio.h>

// 定义结构体
struct Student {
    int rollNumber;
    char name[50];
    float marks;
};

int main() {
    // 创建结构体变量
    struct Student student1;

    // 访问结构体成员并赋值
    student1.rollNumber = 101;
    strcpy(student1.name, "John Doe");
    student1.marks = 85.5;

    // 输出结构体成员
    printf("Roll Number: %d\n", student1.rollNumber);
    printf("Name: %s\n", student1.name);
    printf("Marks: %.2f\n", student1.marks);

    return 0;
}

联合(Union):

联合是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型。联合的大小取决于其最大成员的大小。

联合的定义:

#include <stdio.h>

// 定义联合
union Data {
    int intValue;
    float floatValue;
    char stringValue[20];
};

int main() {
    // 创建联合变量
    union Data data;

    // 赋值并输出
    data.intValue = 42;
    printf("Integer Value: %d\n", data.intValue);

    data.floatValue = 3.14;
    printf("Float Value: %.2f\n", data.floatValue);

    strcpy(data.stringValue, "Hello");
    printf("String Value: %s\n", data.stringValue);

    return 0;
}

typedef:

typedef是C语言中的关键字,它用于为现有的数据类型创建新的名称(别名)。这样做可以使代码更加清晰、易读。

typedef的使用:

#include <stdio.h>

// 使用typedef为数据类型创建别名
typedef unsigned long long int ULLI;

int main() {
    // 使用别名
    ULLI bigNumber = 12345678901234567890ULL;
    printf("Big Number: %llu\n", bigNumber);

    return 0;
}

通过结构体、联合和typedef,C语言提供了一种灵活的方式来组织和定义自定义数据类型。结构体允许将不同类型的数据组合在一起,联合允许在相同的内存位置存储不同的数据类型,而typedef则用于为数据类型创建别名。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 2
关注 25
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧