程序是为完成一项特定任务而用某种语言编写的一组指令序列。
编译器
编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
语言的层次
不同语言 | 表达式 |
高级语言 | A B |
汇编 | Add AX,BX |
机器语言 | 0000 0000 0000 1010 |
主流语言进化史
机器语言→汇编→C→C →C#,Java,Python,VB
C语言特点
优点 | 缺点 |
代码量小 | |
编写代码实现周期长 | |
执行速度快 | |
过于自由,经验不足易出错 | |
功能强大 | |
对平台库依赖较多 | |
编程自由 | |
危险性高 |
C语言是有史以来最为重要的,最基础的编程语言
- 绝对重要的基石语言,Unix,Linux,Windows,JAVA,C ,C#底层实现都靠C
- 学习数据结构,C 的基础
- 可以说,只要是运行的系统,都可以用C写
五大编程语言统治地位加强
Python、Java、C 和 C ,C# 是 TIOBE 编程语言榜的 Top 5 已经有很长一段时间了,并且远远领先于其它语言。
C语言适用的领域
- C语言的应用极其广泛,从网站后台,到底层操作系统,从多媒体应用到大型网络游戏,均可使用C语言来开发。
- C语言可以写网站后台程序
- C语言可以写出绚丽的GUI界面
- C语言可以专门针对某个主题写出功能强大的程序库,然后供其他程序方便使用,从而让其他程序节省开发时间。
- C语言可以写出大型游戏的引擎。
- C语言可以写出另一个语言来。
- C语言可以写操作系统和驱动程序,并且只能用C语言编写,Linux操作系统的全部源代码都可以从网上得到,要深入了解操作系统的运行秘密,懂C语言,就能看懂。
- 任何设备只要配置了微处理器,就都支持C语言。从家用电器到手机,都是由C语言技术来推动的。
- ARM嵌入方式
- 单片机
- Arduino
学习C语言的理由
- 当掌握了C语言后,再去学习其他面向过程的语言,最多一个星期就能学会。
- C语言已经存在很多年了,它有广泛的使用团体并且有大量的现成代码可以利用。这就使大家能在过去程序的基础上,快速和高效的实现自己的程序。
C语言的精髓
C语言仅有32个关键字,9种控制语句,却能完成无数的功能。
数据类型关键字
a. 基本数据类型(5个)
- void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果。
- char:字符型类型数据,属于整型数据的一种。
- int:整型数据,通常为编译器指定的机器字长。
- float:单精度浮点型数据,属于浮点数据的一种。
- double:双精度浮点型数据,属于浮点数据的一种。
b. 类型修饰关键字(4个)
- short:修饰int,短整型数据,可省略被修饰的int。
- long:修饰int,长整形数据,可省略被修饰的int。
- signed:修饰整型数据,有符号数据类型。
- unsigned:修饰整型数据,无符号数据类型。
c. 复杂类型关键字(5个)
- struct:结构体声明。
- union:共用体声明。
- enum:枚举声明。
- typedef:声明类型别名。
- sizeof:得到特定类型或特定类型变量的大小。
d. 存储级别关键字(6个)
- auto:指定为自动变量,由编译器自动分配及释放,通常在栈上分配。
- static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。
- register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。
- extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的对象的一个“引用“
- const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。
- volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。
流程控制关键字
a. 跳转结构(4个)
- return:用在函数体中,返回特定值(或者是void值,即不返回值)。
- continue:结束当前循环,开始下一轮循环。
- break:跳出当前循环或switch结构。
- goto:无条件跳转语句。
b. 分支结构(5个)
- if:条件语句。
- else:条件语句否定分支(与if连用)。
- switch:开关语句(多重分支语句)。
- case:开关语句中的分支标记。
- default:开关语句中的“其他”分治,可选。
c. 循环结构(3个)
- for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件。
- do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件。
- while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件。
- 以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
34种运算符
- 算术运算符: - * / % --
- 关系运算符:< <= == > >= !=
- 逻辑运算符:! && ||
- 位运算符 :<< >> ~ | ^ &
- 赋值运算符:= 及其扩展
- 条件运算符:?:
- 逗号运算符:,
- 指针运算符:* &
- 求字节数 :sizeof
- 强制类型转换:(类型)
- 分量运算符:. ->
- 下标运算符:[]
- 其它 :( ) -
- 方向和目标
- 首先要确定为什么要学习计算机编程语言,为考试?为工作?为兴趣?
- 如果是为兴趣学习,兴趣很容易转易,热情最容易消逝,兴趣一开始比较浓,如何无功利长期坚持就比较难,所以在学习兴趣中不段找到成就感就非常重要。
- 如果是为工作,换一个行业或方向而学习,最有效的方式还是培训。为换一个工作而学习,动力和压力应该是比较大的。也容易在一开始就当作一个技能,工作的技能来学习和操练。
- 为提升工作效率而学习,把编程的思维,工具和方法,应用到不同的工作中,也是一个很大的学习动力,和能够带来成就感的地方。只是学习的时间相对要少很多。
- 学习中最难的是什么?
- 学习编程开发中最常见的问题:
- 1、编程环境不会搭建
- 编程学习的第一步就是搞定环境,包括开发环境,开发工具,运行环境,服务器等等。 要学会解决环境中遇到各种问题。
- 2、知识点太多,前面学后面忘
- 如学习C/C 开发,涉及的内容和知识就太多,对初学者来说首先是程序逻辑,然后面对的可能就是C语言三大巨头(指针,数组,数据结构)等,C 的面向对象编程,STL标准模板库,还有图形化编程等, 太多知识我们需要学习。 如果是自学的话,你可能才到嵌套循环就感觉到困难了,可能是到面向对象感觉到难以理解,要放弃了。 所以一定要有长期作战的思想,有打硬仗的准备。
- 3、代码太多,不知道从哪里看起
- 刚开始代码少还容易,过不了多久,看网上的教程也好,下载的代码也好,拿到的代码很多了,不知道从哪里看起,不知道程序入口在哪里,不知道怎么去运行。 这个原因,就是练习太少,调试太少。很多同学在学习编程时,当作知识来学习,这是一个误区,应该当作技能来学习,技能就需要反复练习,训练。
- 4、完全对着教程做的,就是运行不了
- 明明是一模一样的代码,视频中能运行出来,你的就是不行。原因还是环境和配置的问题。 当然也有不细心的错误,如拼写错误你没有发现。
- 5、错误解决不了,想放弃
- 这是自学最大的障碍。编程的学习,不像英语(外语)等语言类的学习,可以通过反复重复得到提高,甚至可以跳过一两课,都没有关系。 如果长时间被卡壳,错误得不到解决,百度怎么查也不行,或者照着网上的还是解决不了,就是分分钟想放弃。 其实,这就是老师的重要性。有老师在旁边,可能就是稍微点拨一下,这个问题就过去,你也能马上获得到经验。当然现在还可以利用网络上的社群,网上的老师,远程协助,来解决你学习过程中遇到的那些稀奇古怪的问题。
- 6、学了很久了,感觉还没有入门
- 练习不够,项目不够。 这是典型的把编程语言的学习,当作知识点来学习。做项目,就是要把所有知识点一个一个串起来,对你所学习的知识点,技能点都是一个应用的检验。
- 7、技术更新太快,感觉又要重头开始学
- 还是没有把一门语言,一个技能吃透。掌握了一种语言后,对新的语言,框架掌握起来都不是一件难事。
- 编程学习如何突破?
- 语言方向,如果你现在开始学习,不妨选择学习起来更容易上手的,而且功能强大。
- coding coding coding
- 就是多敲代码,多练习
- 要有实战的项目
- 项目也是增加你代码量最有效的手段
- 掌握一门编程语言的意义
- 编程学起来很苦,但也并不是完全一无是处。客观地看,自学编程还是有很多好处。
- 掌握一门技术技能
- 培养学习能力
- 改变思维方式
- 学会快速迭代,不断迭代,完善改进产品的思路
- 享受沉浸专注的快乐
- 编程的学习不能靠碎片化的时间,一定需要大块的时间安排。编程有助于提升你的专注度。
- 享受创造的快乐
- 会编程的人不会感觉枯燥和孤独,他会创造一个世界出来。
- 锻炼毅力和独处能力
- 提高解决问题能力
- 提高面对挫折失败的承受能力
- 常用网站
- GitHub: Let’s build from here · GitHub
- 百度一下,你就知道 (baidu.com)
Visual Studio 2022

下载运行VisualStudioSteup.exe,点击是

点击继续

可能需要等一会时间
