C语言学习笔记 - 17.C编程预备计算机专业知识 - 数据类型

一、数据类型的核心意义

编程的第一步是将数据存储到计算机中(如图书管理系统的图书信息、人事管理系统的人员关系)。为了高效存储和处理不同类型的数据,需对数据进行分类,这就是"数据类型"的核心作用。

数学中数据分为整数、实数、有理数、无理数、虚数、字符等;而C语言中无"有理数/无理数"的划分,核心分为整数、浮点数(对应数学中的实数)、字符三类。


二、C语言数据类型的分类

C语言数据类型分为两大类:

  1. 基本类型:不可再分割的基础数据类型。

  2. 复合类型:由基本类型组合而成的扩展类型。

2.1 基本类型(不可再分割)

2.1.1 整数类型

用于存储不含小数位的整数,C语言中用英文关键字表示(所有编程语言均基于英文,无纯汉语编程语言)。

整数类型 关键字 存储说明 典型字节数(无硬性规定,通常如此)
整型 int 最常用的整数类型 4字节
短整型 short int(可简写为short 存储范围较小的整数 2字节
长整型 long int(可简写为long 存储范围较大的整数 8字节
代码示例与核心说明
复制代码
#include <stdio.h>

int main()
{
    // 定义整型变量i,只能存放整数
    int i = 10;  // 正确:i是整型,存放整数10
    // int i = 10.6;  // 仅警告,不报错(C语言指导思想:不限制程序员的操作)
                     // 但小数部分会被丢弃,最终i仍为10

    printf("i = %d\n", i);  // %d用于输出整型,输出结果:i = 10

    // 短整型与长整型用法同理
    short s = 5;    // 短整型,存储范围小
    long l = 1000;  // 长整型,存储范围大

    return 0;
}

核心提示

  • C语言对"类型不匹配"仅给出警告(认为程序员可能有特殊目的),Java等语言会直接报错。

  • 字节是内存存储单位(1字节=8位),具体含义后续"内存"章节详解。

2.1.2 浮点类型(对应数学中的"实数")

用于存储含小数位的数字,因计算机通过"浮点编码"存储此类数据,故称为"浮点型"。

浮点类型 关键字 存储说明 典型字节数 适用场景
单精度浮点型 float 存储范围较小,精度有限 4字节 存储较小的浮点数(如3.3),节省内存
双精度浮点型 double 存储范围大,精度高 8字节 存储长小数(如1.1111111111),避免数据丢失
核心逻辑:为什么要分float和double?

数学中无需考虑"存储范围",但计算机的内存/硬盘空间是有限的,需根据数据大小选择合适类型:

  • 小数字(如3.3)用float(仅占4字节),避免浪费内存。

  • 长小数用double(占8字节),防止数据丢失。

2.1.3 字符类型

用于存储单个字符(如abm),C语言中无直接存储"字符串"的基本类型,字符串需通过"字符数组"实现(后续章节详解)。

字符类型 关键字 存储说明 典型字节数
字符型 char 存储单个字符 1字节
代码示例
复制代码
#include <stdio.h>

int main()
{
    // 定义字符型变量c,只能存放单个字符
    char c = 'a';  // 正确:c是字符型,存放字符'a'
    printf("c = %c\n", c);  // %c用于输出字符,输出结果:c = a

    c = 'm';  // 可修改为其他单个字符
    printf("c = %c\n", c);  // 输出结果:c = m

    return 0;
}

2.2 复合类型(基本类型的组合)

复合类型是将基本类型"拼凑、组合"而成的扩展类型,C语言中主要包含三类:

  1. 结构体:实际开发中使用较少(Java中已无此概念)。

  2. 枚举:后续重点讲解。

  3. 共用体:已被淘汰,本课程不讲解。


三、核心要点总结

  1. 数据类型的核心作用是对数据分类,高效利用有限的内存空间

  2. 基本类型分为三类:

    • 整数:int(常用)、shortlong

    • 浮点数:float(小数字)、double(长小数)。

    • 字符:char(单个字符),字符串需用字符数组。

  3. C语言的指导思想是不限制程序员的操作,类型不匹配仅警告,不会强制报错。

  4. 内存是编程的核心问题,需根据数据大小选择合适类型,避免浪费内存。

相关推荐
RainCity1 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng9 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
LDR00613 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
通信小呆呆13 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick13 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee13 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Luminous.13 天前
C语言--day30
c语言·开发语言
Alsn8613 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
玖玥拾13 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
YM52e13 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统