初始 C 语言 —0 基础入门 C 语言第一篇(初学者友好、超详细)
一、C 语言是什么C 语言是一门经典、底层、经久不衰的编程语言。万物基于 C绝大多数语言底层都受 C 影响。学好 C 语言等于给编程打下最扎实、最硬核的地基。 简单说非常重要必须学二、开发环境编译器我们写的 C 语言叫高级语言人能看懂 但计算机只认识0 和 1二进制、低级语言。编译器作用把我们写的 C 代码 → 翻译成机器能懂的 0/1 指令。推荐编译器新手入门Dev-C轻量、简单进阶使用Visual Studio 2019/2022提示友好、功能强建议先 Dev 熟悉环境有基础直接上 VS。三、初始 C 语言核心基础1. 第一个 C 语言程序以 Dev-C 为例文件 → 新建 → 源代码写出固定框架#include stdio.h int main() { printf(Hello C语言); return 0; }解释人话版#include stdio.hstdio.h 标准输入输出头文件。 简单理解你要打印、输入就必须包含它否则用不了printf/scanf。main()主函数程序唯一入口。 一个程序只能有一个 main 函数程序从这里开始执行。 注意别写成mian2. 数据类型C 语言必须先规定类型才能存数据。char //字符字母、符号 short //短整型少用 int //整型整数最常用 long //长整型 long long //更长整型 float //单精度浮点数小数 double //双精度浮点数更精确的小数为什么要分这么多类型因为内存空间有限。 就像用小盒子装小蛋糕大盒子装大蛋糕不浪费空间。存储单位必知bit比特最小 8 bit 1 Byte字节 1024 Byte 1 KB 1024 KB 1 MB 1024 MB 1 GB查看类型大小sizeofprintf(%d\n, sizeof(int)); //输出4表示4字节3. 变量 常量3.1 变量会变的数据定义格式类型 变量名; int age 18; char ch A; float score 90.5;建议初始化int a 0;避免脏数据。3.2 变量分类局部 vs 全局局部变量{}内部使用出括号就不能用全局变量{}外部定义整个程序都能用重点同名时局部优先局部覆盖全局。3.3 作用域 生命周期人话作用域这个变量在哪能用生命周期这个变量什么时候创建、什么时候销毁3.4 常量不会变的数据字面常量100; //整型常量 A; //字符常量const 常变量const int a 10; //a 20; 报错不能改const 修饰后不能直接修改但本质还是变量叫常变量。#define 标识符常量#define MAX 100枚举常量 enum批量定义固定值enum DAY { MON1, TUE, WED, THU, FRI, SAT, SUN };默认从 0 开始不写值自动 1。4. 字符串 转义字符4.1 字符串双引号括起来hello world重点字符串默认结尾带\0\0 字符串结束标志。如果没有\0打印会出现烫烫烫、锟斤拷乱码。//正确带\0 char arr1[] abc; //错误不带\0打印乱码 char arr2[] {a,b,c};4.2 转义字符改变原来意思\n 换行 \t 制表符Tab \\ 表示一个\ \ 表示一个5. 选择语句判断5.1 if 语句if(条件) { 满足执行; }5.2 if...elseif(条件) { } else { }5.3 if...else if...else多分支选择。5.4 switch 语句switch(n) { case 1: break; case 2: break; default: break; }没有break会一直往下执行default所有 case 都不匹配时执行6. 循环语句重点难点循环是新手第一个坎一定要多敲代码6.1 for 循环最常用for(int i0; i10; i) { printf(%d ,i); }执行顺序初始化 → 判断 → 执行 → 调整 → 判断...6.2 while 循环int i0; while(i10) { printf(%d ,i); i; }6.3 do...while 循环do { }while();至少执行一次常用于菜单。7. 函数把一段功能打包方便重复使用。int add(int x,int y) { return xy; }像一个 “加工厂”输入 → 处理 → 输出。8. 输入输出函数考试 / OJ 必考必须带头文件stdio.h8.1 输出 printfprintf(内容); printf(%d,整型); printf(%c,字符); printf(%f,小数);格式控制%4d宽度 4右对齐%-4d左对齐%.2f保留两位小数8.2 输入 scanfint a; scanf(%d,a); //取地址必须写9. 数组一组相同类型数据的集合。int arr[10] {1,2,3,4,5};下标从0开始访问arr[0]10. 操作符简单认识 - * / % 算术 ! 关系 - * 赋值 || ! 逻辑三目运算符简化 ifab ? a : b11. 常见关键字break跳出整个循环 /switch。continue跳过本次循环继续下一次。static修饰局部变量延长生命周期出作用域不销毁修饰全局变量 / 函数只能在当前文件使用12. 指针入门内存每个字节都有编号叫地址。a取变量 a 的地址int* p指针变量存地址*p解引用通过地址找到值int a 10; int* p a; *p 100; //a变成10013. 结构体描述复杂对象如学生、商品。struct Student { char name[20]; int age; };使用struct Student s {张三,18};