C语言最基本数据类型有哪些?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 C语言 正文

C语言的数据类型是构建程序的基础,它定义了变量可以存储的数据种类、大小以及可以对其执行的操作,我们可以将它们分为四大类:

在c语言中最基本的数据类型
(图片来源网络,侵删)
  1. 基本数据类型
  2. 构造数据类型
  3. 指针类型
  4. 空类型

基本数据类型是构成其他所有类型的基础,也是我们首先要掌握的。


C语言的基本数据类型

基本数据类型也称为“内置数据类型”或“标量类型”,它们是语言本身直接提供的,用于表示单个值,主要分为三类:整型、浮点型和字符型

整型

整型用于表示没有小数部分的整数,10, -5, 0

类型名称 关键字 描述 典型大小 (字节) 范围示例 (有符号)
字符型 char 通常用于存储一个字符,但在底层它本质上是小的整数。 1 -128 到 127
短整型 short 短整型,占用空间比 int 小或相等。 2 -32,768 到 32,767
整型 int 系统最“自然”的整数大小,通常是机器的字长。 4 -2,147,483,648 到 2,147,483,647
长整型 long 长整型,保证不小于 int 4 或 8 int 或更大
长长整型 long long 更长的整型,保证不小于 long 8 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

修饰符: 整型还可以使用 signed (有符号) 和 unsigned (无符号) 修饰符:

在c语言中最基本的数据类型
(图片来源网络,侵删)
  • signed: 可以存储正数、负数和零,这是默认的。
  • unsigned: 只能存储非负数(0和正数),但其正数范围是 signed 类型的两倍。
  • unsigned int: 范围为 0 到 4,294,967,295
  • unsigned char: 范围为 0 到 255

注意: char 类型比较特殊,它既可以被用作字符('A'),也可以被用作整数(65,因为 'A' 的ASCII码就是65)。

浮点型

浮点型用于表示带有小数部分的实数,14, -0.5, 0e-5

类型名称 关键字 描述 典型大小 (字节) 精度/范围示例
单精度浮点型 float 单精度浮点数,占用空间较小,精度较低。 4 约 7 位有效数字
双精度浮点型 double 双精度浮点数,占用空间和精度是 float 的两倍,是默认的浮点类型。 8 约 15-16 位有效数字
长双精度浮点型 long double 长双精度浮点数,精度和范围通常不小于 double 8 或 16 通常比 double 更高精度

选择建议:

  • 如果对精度要求不高(如游戏坐标、简单的科学计算),可以使用 float
  • 对于绝大多数需要浮点数的场景(如财务计算、物理模拟),强烈推荐使用 double,因为它能提供更高的精度,避免很多精度陷阱。
  • long double 用于需要极高精度的特殊科学计算领域。

字符型

字符型用于表示单个字符,如字母、数字、标点符号等。

在c语言中最基本的数据类型
(图片来源网络,侵删)
类型名称 关键字 描述 典型大小 (字节)
字符型 char 存储一个字符,如 'a', 'Z', '9' 1

重要概念:

  • 字符的本质:在C语言中,字符变量 char 实际上存储的是该字符的ASCII码值(或其他编码标准,如Unicode的UTF-8),它是一个整数。char 类型可以参与整数运算。
  • 字符常量:用单引号括起来,如 'A'
  • 字符串常量:用双引号括起来,如 "Hello",字符串在C语言中实际上是由字符数组构成的,以空字符 '\0'

示例:

char c = 'A';
// 'A' 的ASCII码是65
printf("%c\n", c);   // 输出: A
printf("%d\n", c);   // 输出: 65

void 类型

void 是一个特殊的关键字,字面意思是“空的”、“无类型”,它不表示数据本身,而是有几种重要的用途:

  1. 函数无返回值:当函数不需要返回任何值时,其返回类型声明为 void

    void printMessage() {
        printf("Hello, World!\n");
    }
  2. 函数无参数:当函数不接受任何参数时,可以使用 void 作为参数列表。

    int getRandomNumber(void) {
        return rand();
    }
  3. 通用指针void * 类型的指针可以指向任何类型的数据,但在使用前必须将其强制转换为具体的指针类型。

    void *generic_ptr;
    int i = 10;
    generic_ptr = &i; // void* 指向 int
    int *int_ptr = (int *)generic_ptr; // 强制转换回 int*

总结表格

类型分类 类型名称 关键字 描述
整型 字符型 char 存储单个字符或小整数
短整型 short 短整型
整型 int 系统默认的整数类型
长整型 long 长整型
长长整型 long long 更长的整型
浮点型 单精度浮点型 float 单精度,精度较低
双精度浮点型 double 双精度,默认浮点类型
长双精度浮点型 long double 长双精度,精度更高
字符型 字符型 char 同整型中的 char
空类型 空类型 void 无类型,用于函数返回值、参数和通用指针

如何选择?

  • 存储整数:首选 int,如果数值可能超出 int 的范围,或者需要节省空间,再考虑 shortlong long,如果确定数值不会是负数,使用 unsigned 可以扩大正数范围。
  • 存储小数:首选 double,除非你有非常明确的理由(如内存极度紧张且对精度要求不高),否则不要使用 float
  • 存储单个字符:使用 char

掌握这些基本数据类型是学习C语言的第一步,也是后续学习指针、数组、结构体等更复杂概念的基础。

-- 展开阅读全文 --
头像
嵌入式开发如何用C语言高效实现?
« 上一篇 03-06
dede网站数据库路径如何修改或配置?
下一篇 » 03-06
取消
微信二维码
支付宝二维码