物联网/嵌入式全能工程师「完结40周」

166 阅读3分钟

在C语言中,数据类型用于定义变量或函数可以存储的数据种类和大小。C语言的数据类型可以分为以下几类:

[物联网/嵌入式全能工程师「完结40周[」]

1. 基本数据类型(Primary Data Types)

这些是C语言中最基础的数据类型,包括:

(1) 整数类型(Integer Types)

  • 用于存储整数值。
  • 包括:
    • int:通常为4字节(32位),范围约为 -2,147,483,648 到 2,147,483,647。
    • short:通常为2字节(16位),范围约为 -32,768 到 32,767。
    • long:通常为4字节或8字节(32位或64位),范围更大。
    • long long:通常为8字节(64位),范围更大。
    • unsigned:无符号整数,只能表示非负数(如 unsigned int)。

(2) 浮点类型(Floating-Point Types)

  • 用于存储小数或科学计数法表示的数。
  • 包括:
    • float:单精度浮点数,通常为4字节,精度约为6-7位小数。
    • double:双精度浮点数,通常为8字节,精度约为15位小数。
    • long double:扩展精度浮点数,通常为10字节或更多。

(3) 字符类型(Character Type)

  • 用于存储单个字符。
  • char:通常为1字节(8位),可以存储ASCII字符或小整数(-128 到 127 或 0 到 255)。

(4) 布尔类型(Boolean Type)

  • 用于存储逻辑值(真或假)。
  • _Bool:C99标准引入,值为0(假)或1(真)。
  • 通常使用 <stdbool.h> 中的 booltrue 和 false

2. 派生数据类型(Derived Data Types)

这些数据类型是基于基本数据类型派生的,包括:

(1) 数组(Array)

  • 用于存储相同类型的多个元素。
  • 例如:int arr[10]; 表示一个包含10个整数的数组。

(2) 指针(Pointer)

  • 用于存储变量的内存地址。
  • 例如:int *ptr; 表示一个指向整数的指针。

(3) 函数(Function)

  • 用于定义函数的返回类型和参数类型。
  • 例如:int add(int a, int b); 表示一个返回整数类型的函数。

3. 用户定义数据类型(User-Defined Data Types)

这些数据类型是由程序员定义的,包括:

(1) 结构体(Structure)

  • 用于将不同类型的数据组合在一起。

  • 例如:

    c

    复制

    struct Student {    char name[50];    int age;    float marks;};
    

(2) 联合体(Union)

  • 类似于结构体,但所有成员共享同一块内存。

  • 例如:

    c

    复制

    union Data {    int i;    float f;    char str[20];};
    

(3) 枚举(Enumeration)

  • 用于定义一组命名的整数常量。

  • 例如:

    c

    复制

    enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday};
    

(4) 类型定义(Typedef)

  • 用于为现有数据类型创建别名。

  • 例如:

    c

    复制

    typedef int Integer;Integer a = 10; // 相当于 int a = 10;
    

4. 空类型(Void Type)

  • 用于表示“无类型”或“空类型”。
  • 主要用途:
    • 函数返回类型:void func(); 表示函数不返回任何值。
    • 指针类型:void *ptr; 表示通用指针,可以指向任何类型的数据。

5. 修饰符(Modifiers)

C语言提供了一些修饰符来改变数据类型的含义:

  • signed:表示有符号数(默认)。
  • unsigned:表示无符号数。
  • short:缩短数据类型的长度。
  • long:增加数据类型的长度。

总结

C语言的数据类型非常丰富,从基本类型到用户定义类型,能够满足各种编程需求。理解这些数据类型的特点和用途,是编写高效、可靠C程序的基础。