学自C语言中文网
一.编程语言
- 通过使用某种“语言”的固定格式和固定词汇来控制计算机的行为, 而这个语言就是编程语言(Programming Language) .
- 编程语言类似于人类语言,由直观的词汇组成,我们很容易就能理解它的意思.
C语言中,我们使用 puts 这个词让计算机在屏幕上显示出文字;puts 是 output string(输出字符串)的缩写。
puts("C语言中文网");
固定格式: 内容在引号之间, 命令结尾要有分号
- 一个C语言的完整例子
C语言(C Language)是编程语言的一种,学习C语言,主要是学习它的格式和词汇。
#include <stdio.h>
int main()
{
puts("Hello World!");
return 0;
}
这些具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code),也称源码或代码(Code)。
这些具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code),也称源码或代码(Code)。
4. 编程语言的发展:
汇编语言 --> 面向过程编程 --> 面向对象编程
二. C语言的地位
-
对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。
-
C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。
-
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。C语言涉及到的编程概念少,附带的标准库小,所以整体比较简洁,容易学习,非常适合初学者入门。
-
C语言也不是没有缺点,毕竟是70后老人,有点落后时代,开发效率较低,后来人们又在C语言的基础上增加了面向对象的机制,形成了一门新的语言,称为C++.
-
C语言是计算机产业的核心语言, 软件行业的很多细分学科都是基于C语言的,学习数据结构、算法、操作系统、编译原理等都离不开C语言,所以大学将C语言作为一门公共课程,计算机相关专业的同学都要学习。
-
C语言在计算机产业大爆发阶段被万人膜拜,无疑会成为整个软件产业的基础,拥有核心地位。
-
C语言被誉为“上帝语言”,它不但奠定了软件产业的基础,还创造了很多其它语言
三.C语言是菜鸟和大神的分水岭
-
所有程序都在拼命节省内存,提高内存使用效率,计算机的整个发展过程都在围绕内存打转,不断地优化内存布局,以保证可以同时运行多个程序。
内存就是内存条(如下)
-
进程和线程的存在就是为了更加高效的利用内存.
-
从C语言到内存,从内存到进程和线程,环环相扣:不学C语言就吃不透内存,不学内存就吃不透进程和线程。
三.C语言和C++的关系
- C++ 主要在C语言的基础上增加了面向对象和泛型的机制,提高了开发效率,以适用于大中型软件的编写。
- C、C++代码都会通过同一个编译器来编译,很难说C++是一门独立的语言,还是对C的扩展。
- C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言,C++和C几乎是一样的,所以学习了C语言,也就学习了C++的一半,不需要从头再来。
四.数据在内存中的存储
- 对于计算机来说,所有信息在内存中都是一样的,都是以二进制的形式来表示。
- 0V对应0, 5V对应1;
- 通过电路来控制这些元器件的通断电,会得到很多0、1的组合。例如,8个元器件有 28=256 种不同的组合,16个元器件有 216=65536 种不同的组合。
- 8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。
- 1个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte),那么16个元器件就是2Byte,32个就是4Byte,以此类推:
8×1024个元器件就是1024Byte,简写为1KB;
8×1024×1024个元器件就是1024KB,简写为1MB;
8×1024×1024×1024个元器件就是1024MB,简写为1GB。 - 单位换算
1Byte = 8 Bit
1KB = 1024Byte = 210 Byte
1MB = 1024KB = 220Byte
1GB = 1024MB = 230Byte
1TB = 1024GB = 240Byte
1PB = 1024TB = 250Byte
1EB = 1024PB = 260Byte
五.载入内存,让程序运行起来
- 软件安装在硬盘中, 运行软件时, 从硬盘中将对相应的数据复制到内存, 软件是在内存中运行的. 因为内存的读写速度比硬盘快很多.
- 读写速度: 内存 > 固态硬盘 > 机械硬盘。
- 管是运行QQ还是编辑Word文档,都是先将硬盘上的数据复制到内存,才能让CPU来处理,这个过程就叫作载入内存(Load into Memory)。完成这个过程需要一个特殊的程序(软件),这个程序就叫做加载器(Loader)。
- CPU直接与内存打交道,它会读取内存中的数据进行处理,并将结果保存到内存。如果需要保存到硬盘,才会将内存中的数据复制到硬盘。
- CPU直接从内存中读取数据,处理完成后将结果再写入内存。
六.虚拟内存
- 实际运行的程序占用的空间大于内存空间, 操作系统(OS)会将内存中暂时不用的数据写回硬盘, 需要时在从硬盘读取, 并将另一部分不用的数据写入硬盘. 所以硬盘中用来存放内存中暂时不用的数据的空间, 就叫虚拟内存.
- 这也引发了一个问题: 反复交换硬盘和内存中的数据会消耗很多时间,所以如果内存太小,会严重影响计算机的运行速度,甚至会出现”卡死“现象, 即使cpu很好也没多少作用.
七. ASCII编码
-
ASCII 是“American Standard Code for Information Interchange”的缩写,翻译过来是“美国信息交换标准代码”。
-
字符集为每个字符分配一个唯一的编号,类似于学生的学号,通过编号就能够找到对应的字符。
-
字符集包含了所有字符和对应的二进制.
ASCII 编码一览表 -
Unicode字符集: 各个国家为了自己的语言文化开发的,不具有通用性,在一种编码下开发的软件或者编写的文档,拿到另一种编码下就会失效. 于是, Unicode 诞生了。Unicode 也称为统一码、万国码.