本文为 C 语言入门系列第 2 讲内容清晰、重点突出、代码可直接运行适合零基础稳步学习。 文章目录数据类型介绍signed 和 unsigned 有符号 / 无符号数据类型的取值范围变量定义、分类、存储算术操作符 - * / %赋值操作符 与复合赋值单目操作符 -- -强制类型转换scanf 和 printf 详解1. 数据类型介绍C 语言用数据类型描述不同的数据分为内置类型和自定义类型。1.1 字符型char // 字符型 signed char // 有符号字符 unsigned char // 无符号字符1.2 整型short // 短整型 int // 整型 long // 长整型 long long // 更长整型C991.3 浮点型float // 单精度浮点 double // 双精度浮点 long double // 长双精度1.4 布尔类型C99专门表示真 / 假需包含头文件stdbool.h。_Bool flag true; bool a false;true 1false 01.5 数据类型长度sizeofsizeof用来计算类型 / 变量所占字节数表达式不参与真实运算。#include stdio.h int main() { printf(%zd\n, sizeof(char)); printf(%zd\n, sizeof(short)); printf(%zd\n, sizeof(int)); printf(%zd\n, sizeof(long)); printf(%zd\n, sizeof(long long)); printf(%zd\n, sizeof(float)); printf(%zd\n, sizeof(double)); return 0; }✅ 重点sizeof 内部表达式不执行short s 2; int b 10; printf(%d\n, sizeof(s b 1)); // 计算大小但 s 不会真的变成 11 printf(s%d\n, s); // s 仍然是 22. signed 和 unsignedsigned带正负号unsigned不带正负号只能存 0 和正数signed int a; // 等价 int a unsigned int b; // 无符号整型范围对比16 位signed short-32768 ~ 32767unsigned short0 ~ 65535char 特殊char默认是否有符号由系统决定不等同于signed char。3. 数据类型的取值范围查看范围包含头文件整数limits.h浮点数float.h常用极值INT_MIN // int 最小值 INT_MAX // int 最大值 CHAR_MIN CHAR_MAX4. 变量4.1 变量定义int age 18; char ch a; double pi 3.14;4.2 变量分类全局变量大括号外整个工程可用存放在静态区局部变量大括号内仅局部可用存放在栈区✅ 重点同名时局部变量优先int n 1000; int main() { int n 10; printf(%d, n); // 输出 10 return 0; }5. 算术操作符 - * / %5.1 加减乘除int a 10 20; int b 10 - 5; int c 2 * 3;5.2 除法 /整数相除 整除只留整数部分想要小数至少一个操作数为浮点数printf(%d\n, 6 / 4); // 1 printf(%f\n, 6.0 / 4); // 1.5000005.3 取模 %只能用于整数结果符号由第一个数决定。11 % 5 1 -11 % 5 -1 11 % -5 16. 赋值操作符 与复合赋值6.1 基本赋值int a 10; a 20;6.2 连续赋值不推荐c b a 3;6.3 复合赋值符a 3; // a a3 a - 2; // a a-2 a * 2; a / 2; a % 2;7. 单目操作符 -- -7.1 前置 /--先 1再使用int a 10; int b a; // a11 b117.2 后置 /--先使用后 1int a 10; int b a; // a11 b107.3 正负号 -int a -10; int b a; int c -a;8. 强制类型转换语法(类型)值强行把一种类型转为另一种。int a (int)3.14; // a3⚠️ 尽量少用不到万不得已不使用。9. scanf 和 printf 详解9.1 printf 格式化输出9.1.1 基本用法printf(Hello World\n);9.1.2 常用占位符%dint%cchar%ffloat/double%s字符串%lfdouble%zdsize_tsizeof 返回类型9.1.3 格式控制宽度%5d左对齐%-5d显示正负%d保留小数%.2f截取字符串%.5sprintf(%6.2f\n, 0.5); // 0.50 printf(%.5s\n, hello world); // hello9.2 scanf 键盘输入9.2.1 基本用法int a; scanf(%d, a); // 必须加 9.2.2 多变量输入scanf(%d%d%f, a, b, f);9.2.3 scanf 返回值返回成功读取的变量个数读取失败返回EOF(-1)。int r scanf(%d%d, a, b); printf(成功读取 %d 个数据\n, r);9.2.4 赋值忽略符*跳过不需要的字符scanf(%d%*c%d%*c%d, year, month, day); // 支持 2025-05-06 或 2025/05/06如果这篇文章对你有帮助欢迎点赞、收藏、关注后续会持续更新 C 语言干货