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)); // 输出44. 有符号 / 无符号(重难点)
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"); // 输出 ac6. 进制转义(拓展考点)
\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"); // 44. 字符串坑题解析
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