作者:解学武
C语言入门教程(非常详细)
![C语言入门教程(非常详细)](/uploads/allimg/240819/2-240Q915302AJ.png)
C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。
这套「C语言入门教程」由站长亲自执笔,将多年的编程经验灌输其中,典型的实践派。
本教程通俗易懂,深入浅出,既适合初学者入门,也适合程序员进阶,还适合在校生打比赛。
这套零基础版的《C语言入门教程》为站长原创,由国家权威机构和地方版权局签发的版权证书所保护,版权:Version 1.0 Version 2.0。
- 第1章 编程基础
- 1.通俗地理解什么是编程语言
- 2.C语言究竟是一门怎样的语言?
- 3.C语言是菜鸟和大神的分水岭
- 4.学编程难吗?多久能入门?
- 5.英语和数学不好,能学编程吗?
- 6.高中毕业能学会编程吗?
- 7.C语言和C++到底有什么关系?
- 8.学了C语言到底能做什么,能从事什么工作?
- 9.二进制、八进制和十六进制
- 10.不同进制之间的转换
- 11.数据在内存中的存储
- 12.载入内存,让程序运行起来
- 13.ASCII编码,将英文存储到计算机
- 14.GB2312编码和GBK编码,将中文存储到计算机
- 15.Unicode字符集,将全世界的文字存储到计算机
- 16.程序员的薪水和发展方向大全
- 17.不要这样学习C语言,这是一个坑!
- 18.明白了这点才能学好编程,否则参加什么培训班都没用
- 第2章 C语言初探
- 1.第一个C语言程序
- 2.选择正确的输入法,严格区分中英文
- 3.什么是源文件?
- 4.什么是编译和链接?
- 5.主流C语言编译器有哪些?
- 6.什么是IDE(集成开发环境)?
- 7.什么是工程/项目?
- 8.哪款C语言编译器(IDE)适合初学者?
- 9.C语言的五套标准:C89、C99、C11、C17和C23
- 10.如何在手机上编写C语言代码?
- 11.C语言为什么有那么多编译器?
- 12.程序安装是怎么回事?
- 13.制作安装包,让用户安装程序
- 14.C语言程序的错误和警告
- 15.分析第一个C语言程序
- 16.C语言代码中的空白符
- 17.彩色版的C语言,让文字更漂亮
- 18.一个真正带界面的C语言程序
- 第3章 变量和数据类型
- 1.大话C语言变量和数据类型
- 2.在屏幕上输出各种类型的数据
- 3.C语言中的整数(short,int,long,long long)
- 4.二进制数、八进制数和十六进制数
- 5.C语言中的正负数及其输出
- 6.整数在内存中是如何存储的,为什么它堪称天才般的设计
- 7.整数的取值范围以及数值溢出
- 8.C语言中的小数(float,double,long double)
- 9.C语言数字后缀大全(一览表)
- 10.小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计
- 11.在C语言中使用英文字符
- 12.在C语言中使用中文字符
- 13.C语言到底使用什么编码?谁说C语言使用ASCII码,真是荒谬!
- 14.C99新增加了布尔类型(bool)!
- 15.C语言转义字符
- 16.C语言标识符、关键字、注释、表达式和语句
- 17.C语言加减乘除运算
- 18.C语言自增(++)和自减(--)
- 19.变量的定义位置以及初始值
- 20.运算符的优先级和结合性
- 21.C语言数据类型转换
- 第4章 C语言输入输出
- 1.数据输出大汇总以及轻量进阶
- 2.在屏幕的任意位置输出字符,开发小游戏的第一步
- 3.使用scanf读取从键盘输入的数据
- 4.从键盘输入字符和字符串
- 5.进入缓冲区的世界,破解一切与输入输出有关的疑难杂症
- 6.结合缓冲区谈scanf函数,那些奇怪的行为其实都有章可循
- 7.清空(刷新)缓冲区,从根本上消除那些奇怪的行为
- 8.scanf的高级用法,原来scanf还有这么多新技能
- 9.C语言模拟密码输入(显示星号)
- 10.非阻塞式键盘监听,用户不输入数据程序也能继续执行
- 第5章 循环结构和选择结构
- 1.C语言if else语句
- 2.C语言关系运算符
- 3.C语言逻辑运算符
- 4.C语言switch case语句
- 5.C语言条件运算符
- 6.C语言while循环
- 7.C语言for循环
- 8.C语言跳出循环
- 9.C语言循环嵌套
- 10.对选择结构和循环结构的总结
- 11.谈编程思维的培养,初学者如何实现自我突破(非常重要)
- 12.写一个内存泄露的例子,让计算机内存爆满
- 第6章 C语言数组
- 1.什么是数组
- 2.C语言二维数组
- 3.数组的指定初始化(C99新增语法)
- 4.判断数组中是否包含某个元素
- 5.C语言字符数组和字符串
- 6.字符串的输入和输出
- 7.C语言字符串处理函数
- 8.C语言数组是静态的,不能插入或删除元素
- 9.C语言数组的越界和溢出
- 10.C语言变长数组:使用变量指明数组的长度
- 11.对数组元素进行排序
- 12.对C语言数组的总结
- 第7章 C语言函数
- 1.什么是函数?
- 2.C语言函数定义
- 3.C语言函数的形参和实参
- 4.C语言函数的返回值
- 5.C语言函数的调用(从中发现程序运行的秘密)
- 6.函数声明以及函数原型
- 7.全局变量和局部变量
- 8.C语言变量的作用域
- 9.C语言块级变量
- 10.C语言递归函数(带实例演示)
- 11.中间递归函数(比较复杂的一种递归)
- 12.多层递归函数(最烧脑的一种递归)
- 13.递归函数的致命缺陷:巨大的时间开销和内存开销
- 14.C99新增了内联函数(inline)!
- 15.C语言随机数(rand()和srand())
- 16.忽略语法细节,从整体上理解函数
- 第8章 预处理命令
- 1.什么是预处理命令?
- 2.#include的用法
- 3.C语言宏定义
- 4.C语言带参数的宏定义
- 5.带参宏定义和函数的区别
- 6.宏参数的字符串化和宏参数的连接
- 7.C语言中几个预定义宏
- 8.C语言条件编译
- 9.#error命令,阻止程序编译
- 10.C语言预处理命令总结
- 第9章 指针
- 1.1分钟彻底理解指针的概念
- 2.指针变量的定义和使用
- 3.C语言指针变量的运算
- 4.数组指针(指向数组的指针)
- 5.字符串指针(指向字符串的指针)
- 6.C语言数组灵活多变的访问形式
- 7.指针变量作为函数参数
- 8.C语言指针作为函数返回值
- 9.二级指针(指向指针的指针)
- 10.空指针NULL以及void指针
- 11.数组和指针绝不等价,数组是另外一种类型
- 12.数组到底在什么时候会转换为指针
- 13.指针数组(数组每个元素都是指针)
- 14.一道题目玩转指针数组和二级指针
- 15.二维数组指针(指向二维数组的指针)
- 16.函数指针(指向函数的指针)
- 17.只需一招,彻底攻克C语言指针,再复杂的指针都不怕
- 18.main()函数的高级用法:接收用户输入的数据
- 19.const的用法
- 20.对C语言指针的总结
- 第10章 结构体
- 1.C语言结构体
- 2.C语言结构体数组
- 3.C语言柔性数组(C99新特性)
- 4.C语言结构体指针
- 5.C语言枚举类型
- 6.C语言共用体
- 7.typedef的用法
- 8.大端小端以及判别方式
- 9.C语言位域
- 10.C语言位运算
- 11.使用位运算对数据或文件内容进行加密
- 第11章 文件操作
- 1.C语言中的文件是什么?
- 2.C语言打开文件
- 3.文本文件和二进制文件到底有什么区别?
- 4.以字符形式读写文件
- 5.以字符串的形式读写文件
- 6.以数据块的形式读写文件
- 7.格式化读写文件
- 8.随机读写文件
- 9.C语言实现文件复制功能
- 10.FILE结构体以及缓冲区深入探讨
- 11.获取文件大小(长度)
- 12.插入、删除、更改文件内容
- 第12章 C语言调试
- 1.调试的概念以及调试器的选择
- 2.设置断点,开始调试
- 3.查看和修改变量的值
- 4.单步调试(逐语句调试和逐过程调试)
- 5.即时窗口的使用
- 6.查看、修改运行时的内存
- 7.有条件断点的设置
- 8.assert断言函数
- 9.调试信息的输出
- 10.VS调试的总结以及技巧
- 第13章 多文件编程
- 1.从extern关键字开始谈多文件编程
- 2.那些被编译器隐藏了的过程
- 3.目标文件和可执行文件里面都有什么?
- 4.到底什么是链接,它起到了什么作用?
- 5.符号——链接的粘合剂
- 6.强符号和弱符号
- 7.强引用和弱引用
- 8.C语言模块化编程中的头文件
- 9.C语言标准库以及标准头文件
- 10.细说C语言头文件的路径
- 11.防止C语言头文件被重复包含
- 12.C语言static变量和函数
- 13.一个比较规范的C语言多文件编程的例子
- 第14章 C语言内存精讲
- 1.一个程序在计算机中到底是如何运行的?
- 2.虚拟内存到底是什么?为什么我们在C语言中看到的地址是假的?
- 3.虚拟地址空间以及编译模式
- 4.C语言内存对齐,提高寻址效率
- 5.内存分页机制,完成虚拟地址的映射
- 6.分页机制究竟是如何实现的?
- 7.MMU部件以及对内存权限的控制
- 8.Linux下C语言程序的内存布局
- 9.Windows下C语言程序的内存布局
- 10.用户模式和内核模式
- 11.栈(Stack)是什么?栈溢出又是怎么回事?
- 12.一个函数在栈上到底是怎样的?
- 13.函数调用惯例(Calling Convention)
- 14.用一个实例来深入剖析函数进栈出栈的过程
- 15.栈溢出攻击的原理是什么?
- 16.C语言动态内存分配
- 17.malloc函数背后的实现原理——内存池
- 18.C语言野指针以及非法内存操作
- 19.C语言内存泄露(内存丢失)
- 20.C语言变量的存储类别和生存期