01.为什么会选择学习c
02. C与C 的历史
03. C 的特点
04. c 的缺点
05. c 的具体应用场景
06. 编程语言的层次
07. 编译型语言
08. C 的数据类型
正文01.为什么要学点学习c
- c 在一些场景中具有无可替代的作用
- c 更加贴近底层,在追求性能和降低功耗方面没有敌手
- c 非常适合在一个小的设备上完成高性能开发
- 学会c 后,入门其他语言都相对简单
- javacript引擎就是c 写的,当然还有其他的比如java虚拟机等等
02. C与C 的历史
- 20世纪60年代,贝尔实验室研究员Ken Thompson闲来无事,想模拟在太阳系航行的电子游戏——Space Travel,他背着老板找了一台空闲机器,但是这台机器没有操作系统,所以就开发了一款操作系统名叫UNIX。
- 1970年, Ken Thompson,又以BCPL语言为基础,设计出简单而又贴近硬件的B语言。
- 1971年,同样爱玩Space Travel游戏的Dennis M.Ritchie,加入了这个项目,他的主要任务是改造B语言。
- 1972年,Dennis M.Ritchie最终设计出一种新的语言,就是C语言。
- 1973年,C语言完成后,Thompson和Ritchie便用C语言重写了UNIX,而此时他俩也忘记了热衷的Space Travel游戏。
- 1979年,Bjarne Stroustrup开始从事改良C语言创立了带类的C语言。
- 1983年,语言的名字变成了C 。
- 1985年,完成第一次修改,1990年,完成第二次修改
- 1998年,伴随着STL标准库的诞生,C 委员会发布了第一个国际标准称为C 98。
- 2011年,C 11 完成了新的标准,Boost库项目对标准产生了相当大的影响,很多新模块是直接从Boost库中派生出来的。
- C 11 之后,基本保持每三年发布一版新的语言标准。
03. C 的特点
- C 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。
- C 可运行于多种平台上,例如Windows、MAC 操作系统以及 UNIX 各个版本。
- C 的封装抽象能力强大,具备开发大型工程能力。
- C 在封装的同时,最大程度保留了高性能,运行速度快,占用资源少,这也一直是c 的语言追求。
- 功耗低,特别适合嵌入式开发,适合在各种微型设备中嵌入高效的程序。
04. c 的缺点
- C 的开发成本相对较高,语法相对复杂,细节非常多。
- 在大型工程开发时,需要做好规范,否则后期代码很难维护。
05. c 的具体应用场景
- 大型的桌面应用程序,比如谷歌的Chrom浏览器和微软的Office系列。
- 大型网站的后台,比如谷歌的搜索引擎。
- 大型3D游戏的引擎,比如Unity。
- AI引擎比如Tensorflow
- 数据库,比如SQL server、Oracle
- 无人驾驶系统
- 其他的比如嵌入式设备开发
06. 编程语言的层次
- 第一,机器语言(0 1 序列),汇编语言(在0 1序列的基础上用英文模拟出来)等
- 第二,编译型语言(不同的平台都需要编译一次),例如C ,C
- 第三,解释型语言(编译一次可以在不同操作平台使用),如python等
- 第四,脚本语言(不同平台有不同的脚本语言),如bash,csh等
07. 编译型语言
- 编译型语言一般都需要经历编译和链接的过程,才能成为真正可执行的程序。
08. C 的数据类型
C 中的每个变量都有它的数据类型,数据类型决定这个变量所占内存空间的大小和布局方式,以及该空间存储的值范围和变量能参与的运算。
- 七种基本的C 数据类型
类型 | 关键字 |
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
- 各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。
名称 | 字节数 | 描述 | 范围 |
char | 1 | 字符或整数,8bits长 | 有符号:-128到127,无符号:0到255 |
short int | 2 | 短整数,16bits长 | 有符号:-32768到32767,无符号:0到65535 |
long int | 4 | 长整形 32bits长 | 有符号:-2147483648,无符号:0到4294967295 |
int | 4 | 整数 | 有符号:-2147483648到2147483647,无符号:0到4294967295 |
float | 4 | 浮点数 | 3.4e /-38(7个数字 7digits) |
double | 8 | 双精度浮点数 | 1.7e /-308(15digits) |
long double | 8 | 长双精度浮点数 | 1.7e /-308 15(digits) |
bool | 1 | 布尔值。 | true 或 false |
wchar_t | 2 | 宽字符。这是为了存储两个字节(2bytes)长的国际字符而设计的类型 | 一个宽字符(1 wide characters) |
这是开始学习C 所记录的第一篇笔记,因为是刚开始学所以内容都很基础,以上的内容都是手敲的,可能有手误的地方,也可能有理解错误的地方,希望大家一起帮忙多多指正和见谅,如果有兴趣的话,麻烦点个赞加个关注,每周的五、六都会分享最近的学习笔记,希望大家多多指教。最后,希望与每一个努力的人同行,一起加油!