c语言初学 | 数据类型、ASCII、转义字符、字符串

📅 2026/7/19 3:30:43 👁️ 阅读次数 📝 编程学习
c语言初学 | 数据类型、ASCII、转义字符、字符串

前言

本文为C语言自学第2天完整学习笔记,涵盖:头文件、布尔类型、基础数据类型、sizeof、unsigned无符号类型、ASCII编码、全部转义字符、字符串本质、strlen与sizeof区别。

全篇无废话、考点全覆盖、适合背诵、刷题、博客发布。

一、头文件引用 #include(必考基础)

1. 头文件作用

头文件是系统提供的函数工具库,想要使用系统函数,必须引入对应头文件。

2. 三大必考头文件

#include <stdio.h> // 标准输入输出:printf、scanf

#include <stdbool.h> // 布尔类型:bool、true、false

#include <string.h> // 字符串操作:strlen

3. 核心考点

  • #include 是预处理指令,不是语句,末尾不加分号

  • .h是头文件后缀(header)

  • <>表示从系统目录查找头文件

  • 双引号 "" 用于自定义本地头文件


二、布尔类型 _Bool / bool(C99新增)

1. 作用

专门用于逻辑判断,只有两种状态:真 / 假。

2. 两种写法

_Bool flag1 = 1; // C原生写法,无需头文件

bool flag2 = false; // 简洁写法,必须引入 stdbool.h

3. 底层规则(考试高频)

  • true 本质 =1

  • false 本质 =0

  • 布尔类型固定占用1字节

  • 任意非0值赋值给布尔变量,结果都是 true


三、基础数据类型(核心必考)

1. 原理

不同数据类型占用内存大小不同,用于适配不同范围的数据,节约内存空间。

2. 最全类型对照表(专升本满分版)

数据类型

中文名称

字节数

取值范围 / 精度

char

字符型

1

-128 ~ 127

short

短整型

2

-32768 ~ 32767

int

整型

4

-2147483648 ~ 2147483647

long

长整型

4/8

随系统平台变化

long long

长长整型

8

-922亿亿 ~ 922亿亿

float

单精度浮点

4

6位有效数字

double

双精度浮点

8

15位有效数字

_Bool

布尔型

1

0、1

3. sizeof 运算符(必考)

作用:计算类型/变量占用内存字节数

输出格式必须用:%zu

printf("%zu", sizeof(int)); // 输出4

4. 有符号 / 无符号(重难点)

  • signed int(默认):正数、负数、0

  • unsigned int:只能存 0 和正数,范围翻倍

unsigned int num = 4294967295; // 无符号int最大值

四、ASCII 编码(必考背诵点)

1. 定义

计算机只能存数字,ASCII 是字符 ↔ 十进制数字的映射表。

2. 必背基准值(三道题必考)

  • '0' → 48

  • 'A' → 65

  • 'a' → 97

  • 空格 → 32

  • \n → 10

3. 万能规律

  • 小写字母 - 大写字母 =32

  • 数字、大写、小写字母内部编码连续递增

printf("%d", 'a' - 'A'); // 固定输出32

五、转义字符(考试最大坑点·最全完整版)

1. 定义

\开头,代表特殊功能,不再代表原本字符。

2. 格式控制类(最常用)

转义字符

功能

考试重点

\n

换行

光标移到下一行行首

\t

水平制表符

相当于Tab空格

\r

回车

光标回到本行开头,覆盖内容

\b

退格

光标左移一格,覆盖前一个字符

\f

换页

控制台几乎不用

3. 符号输出类(必须转义)

\\

输出反斜杠 \

\'

输出单引号 '

\"

输出双引号 "

4. 功能类转义字符

  • \0:字符串结束标志,ASCII=0,不可见、不占有效长度

  • \a:蜂鸣警报

5. 难点辨析:\r 和 \b(超多错题)

  • \r:整行回到行首,覆盖整行开头

  • \b:只退一格,只覆盖前一个字符

printf("abc\r12"); // 输出 12c printf("ab\bc"); // 输出 ac

6. 进制转义(拓展考点)

  • \ddd:八进制字符

  • \xhh:十六进制字符(必须带x)

printf("%c", '\101'); // A printf("%c", '\x41'); // A

六、字符串、strlen、sizeof(专升本超级重点)

1. 字符串本质

C语言字符串以\0结尾,由系统自动追加,用户不用写。

"abc" 实际存储:a b c \0

2. strlen 与 sizeof 终极区别(必考)

函数

作用

是否包含\0

头文件

strlen()

统计有效字符长度

❌ 不包含

string.h

sizeof()

统计内存总字节数

✅ 包含

无需头文件

3. 经典例题

strlen("abc"); // 3 sizeof("abc"); // 4

4. 字符串坑题解析

strlen("c:\add\test") = 9

原因:\a、\t 各算1个转义字符,不再是普通字符。


七、今日全部考点总结(背诵版)

  • 头文件三种:stdio.h、stdbool.h、string.h

  • 布尔类型1字节,非0为真,0为假

  • 数据类型字节口诀:char1、short2、int4、longlong8

  • unsigned 无符号只能存正数

  • ASCII三大基准:48、65、97,大小写差32

  • 转义字符:\n换行、\t制表、\r行首覆盖、\b退格覆盖、\\反斜杠

  • \0是字符串结束符,不计入有效长度

  • strlen算字符、sizeof算内存、strlen不含\0、sizeof含\0