C 语言提供了一系列数据类型,用于声明变量和表达式。理解数据类型有助于编写高效、健壮的程序。本文详细介绍了 C 语言中常用的数据类型、它们的存储大小和适用场景,并附有示例和参考资料。


目录

  1. 基本数据类型
  2. 修饰符
  3. 派生数据类型
  4. 自定义数据类型
  5. 示例代码
  6. 参考资料

1. 基本数据类型

C 语言的基本数据类型主要包括整型、字符型、浮点型和双精度浮点型。这些数据类型直接由编译器支持,常见信息如下:

  • 整型(int
    • 描述:用于存储整数。
    • 大小:通常为 4 字节(32 位系统下可能为 2 字节)。
    • 取值范围:典型范围为 -2,147,483,648 至 2,147,483,647。
  • 字符型(char
    • 描述:用于存储单个字符。
    • 大小:1 字节。
    • 取值范围:-128 到 127(有符号)或 0 到 255(无符号)。
  • 浮点型(float
    • 描述:用于存储单精度浮点数。
    • 大小:4 字节。
    • 取值范围:约 3.4E-38 至 3.4E+38。
  • 双精度浮点型(double
    • 描述:用于存储双精度浮点数,精度更高。
    • 大小:8 字节。
    • 取值范围:约 1.7E-308 至 1.7E+308。

🔗 了解更多基本数据类型C 语言 Wikipedia


2. 修饰符

数据类型修饰符可以改变基本数据类型的存储大小和取值范围。常见修饰符包括:

  • signed / unsigned
    • signed int:默认,可表示正负整数。
    • unsigned int:仅表示非负整数,取值范围为 0 至 4,294,967,295(通常 4 字节)。
  • short / long
    • short int:通常为 2 字节。
    • long int:在 32 位系统中可能为 4 字节,在 64 位系统中可能为 8 字节。
    • long long int:至少为 8 字节,提供更大范围。

这些修饰符能够让开发者根据内存需求和数据范围进行选择。


3. 派生数据类型

派生数据类型是在基本数据类型基础上构造的,主要包括:

  • 数组:存储同一类型元素的集合,例如 int numbers[10];
  • 指针:存储变量地址的变量,例如 int *p;
  • 函数:可以返回数据类型或接收参数的代码块。
  • 结构体:组合不同数据类型的变量,例如: struct Person { char name[20]; int age; };
  • 共用体:在同一内存位置存储不同数据类型的数据,节省内存。

4. 自定义数据类型

C 语言允许使用 typedef 为已有数据类型创建别名,从而提高代码可读性。例如:

typedef unsigned int uint;
uint count = 100;

此外,还可以通过 enum 定义枚举类型,用于表示具名整数常量:

enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };


5. 示例代码

下面的示例代码展示了如何声明并使用多种数据类型:

#include <stdio.h>

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

int main() {
    // 基本数据类型
    int num = 100;
    char letter = 'A';
    float pi = 3.14f;
    double e = 2.71828;

    // 使用修饰符:无符号整型
    unsigned int count = 200;

    // 使用 typedef 定义的新类型
    typedef long long ll;
    ll bigNumber = 9876543210;

    // 定义并初始化数组
    int numbers[5] = {1, 2, 3, 4, 5};

    // 声明结构体变量并初始化
    struct Person person = {"Alice", 30};

    // 输出结果
    printf("整数: %d\n", num);
    printf("字符: %c\n", letter);
    printf("浮点数: %f\n", pi);
    printf("双精度浮点数: %lf\n", e);
    printf("无符号整型: %u\n", count);
    printf("长整数: %lld\n", bigNumber);
    printf("数组第一个元素: %d\n", numbers[0]);
    printf("姓名: %s, 年龄: %d\n", person.name, person.age);

    return 0;
}

该示例涵盖了基本数据类型、修饰符、数组、结构体和自定义数据类型的应用。


6. 参考资料


掌握 C 数据类型是编写高效程序的基础,正确选择和使用数据类型将大大提升程序的性能和安全性。进一步了解 C 基础语法C 程序结构 可以帮助你构建更复杂和可靠的应用程序。Happy coding!