C语言000——开始

C语言000——开始

介绍

本系列博客主要面向于新手,提供一个从零开始的基础C语言教程。

开发环境如下:

  • 操作系统:Windows 10
  • IDE:Qt Creator
  • 编译器:Mingw64-7.3.0

C语言介绍

C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。

C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言。当前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。——维基百科

虽然很多人都不推荐C语言作为新手的入门语言(当然也有很多人支持),但是我个人感觉拿任何一门语言作为入门语言都可以。之所以写这个教程,是因为我本人学习编程就是从C开始的,作为CS专业的一员,我大一入学时基本就是零基础,之前在高中也基本没怎办碰过电脑,希望这个教程可以帮到初学者。

C/C++基本上是现代计算机软件体系的基础,大到操作系统内核、语言编译器,小到嵌入式系统、单片机里跑的程序,绝大多数都是用C/C++编写的。此外,学习C语言有助于我们更好地理解计算机架构。

计算机组成基础知识

这里简单补充一点关于计算机组成的基本概念。

  • [ ] 二进制

现代计算机基本上都是基于冯诺依曼体系结构——一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构。冯诺依曼体系将计算机分为了五大部件,即:存储器、控制器、运算器、输入设备、输出设备。其中控制器和运算器合起来称作中央处理器,也即CPU。

5656674-948bdbe09fba40a6.jpg
five.jpg

这五大部件的功能如下:

  • 控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
  • 运算器:对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
  • 存储器:存储程序、数据和各种信号、命令等信息。
  • 输入设备:将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。
  • 输出设备:把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。

基本上,CPU承担绝大部分的运算工作。其工作原理如下:CPU不断地从内存(存储器的一种,易失性存储器,断电即丢失数据)中取出一条指令并执行。

高级程序设计语言

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,是计算机唯一能直接理解的语言。要用机器语言编写程序,编程人员需首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员要自己处理每条指令和每一数据的存储分配和输入输出,还需记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,这样编写出的程序完全是0与1的指令代码,可读性差且容易出错。在现今,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再学习机器语言。而且,不同种类的计算机其机器语言是不相通的,按某种计算机的机器指令编制的程序不能在另一种计算机上执行。

计算机硬件只能识别由 0、1 字符序列组成的机器指令,因此机器指令是最基本的计算机语言。用机器语言编制程序效率低、可读性差,也难以理解、修改和维护。因此,人们设计了汇编语言,用容易记忆的符号代替 0、1 序列,来表示机器指令中的操作码和操作数。例如,用 ADD 表示加法、SUB 表示减法等。虽然使用汇编语言编写程序的效率和程序的可读性有所提高,但汇编语言是面向机器的语言,其书写格式在很大程度上取决于特定计算机的机器指令。机器语言和汇编语言被称为低级语言。
人们开发了功能更强、抽象级别更高的语言以支持程序设计,因此就产生了面向各类应用的程序设计语言,即高级语言,常见的有 Java、C、C++、C#、Python、PHP 等。这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。

翻译程序

目前,我们可以使用高级程序设计语言编写程序设计语言与计算机进行交互,但是计算机只能理解和执行机器语言,因而我们需要一个翻译程序帮助我们将高级程序设计语言翻译为机器语言。翻译程序扫描所输入的源程序,并将其转换为目标程序,或者将源程序直接翻译为结果。

源程序----->翻译程序---->目标程序(或执行结果)

翻译程序的输入是一种泛指的语言编写的源程序,但是不一定是高级语言。翻译程序可以简单分为:编译程序、解释程序(或者叫编译器、解释器)。编译程序是翻译程序的一个子集,编译语言的输入是高级语言,输出是目标代码机器语言或者汇编语言。如果是汇编语言,则还需要一个汇编程序将其翻译为机器语言。

解释程序解释执行源程序,同时处理源程序和输入的数据(如果有的话),不生成目标代码

常见的编译型语言有:C、C++、Pascal、Objective-C等

常见的解释性语言有:JavaScript、Python、Shell、PHP、Perl、Ruby等。

还有一种方案是混合编译型语言和解释型语言,将源语言编译为一种中间码,再由解释器,解释执行中间码。如:Java、C#。

猜你喜欢

转载自blog.csdn.net/weixin_34138521/article/details/86821384
000