1、程序与编程语言
我们使用计算机离不开程序。程序告诉计算机应该怎样运行。程序(Program)是一个精确说明怎样进行计算的指令序列。这里的计算能够是数学运算,比方通过一些数学公式求解,也能够是符号运算。比方我们使用world编辑一个文档或是通过搜索引擎检索信息。
计算机本质上是由数字电子电路组成的运算机器,全部的运算都仅仅能通过数字来表示和处理。通过将各种数据转换为数字表示,能够使计算机处理各种信息。比方音乐、图片、电影等。
程序由一系列指令组成的,指令就是指挥计算机做某种运算的命令。通常包括下面六类:
输入类指令:用于从键盘、文件或者其他设备获取数据。
输出类指令:用于把数据显示到屏幕。或者存入一个文件。或者发送到其他设备,比方打印机。
基本运算类指令:用于运行最主要的数学运算(加减乘除)和数据存取。事实上输入和输出也属于数据存取。
測试和分支类指令:用于推断某个条件是否成立,然后依据不同的结果运行不同的兴许指令。
循环类指令:用于反复运行一系列操作。
对于程序来说,有上面这几类指令就足够了。你曾用过的不论什么一个程序,无论它有多么复杂,都是由上面这几类指令组成的。
编敲代码能够说就是这样一个过程:把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得能够用以上指令来完毕。
在不同的编程语言中。指令具有不同的形式。通常“指令”这个词专指机器语言或者汇编语言等低级语言中的指令,而在C语言、C++、Java、Python等高级语言中通常称为语句或表达式。
计算机语言通常分为低级语言和高级语言。计算机所能直接理解的指令是机器语言,它是由一串串由"0"和"1"组成的指令序列组成的。因为机器语言对于人来来说记忆困难,难以理解。人们对它进行了改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,出现了汇编语言。机器语言和汇编语言都十分依赖于机器硬件。这两种语言同属低级语言
因为低级语言比較冗长、复杂、easy出错。并且须要有很多其他的计算机专业知识。所以又出现了高级语言。高级不但将很多相关的机器指令合成为单条指令并且去掉了与详细操作有关但与完毕工作无关的细节,比如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
经常使用的高级语言非常丰富。如:C、C++、JAVA、C#、python等。
2、C语言简单介绍
C语言是一种计算机程序设计语言,它既具有高级语言的特点。又具有汇编语言的特点。它由美国贝尔实验室的Dennis M. Ritchie于1972年推出。之后C语言先后被移植到大、中、小及微型机上,它即能够作为工作系统设计语言,编写系统应用程序。也能够作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛。具备非常强的数据处理能力,适于编写系统软件、三维、二维图形和动画,详细应用比如单片机以及嵌入式系统开发。
C语言是一种通用的、过程式的编程语言。广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序猿中备受青睐。
近期25年是使用最为广泛的编程语言。
在操作系统和系统使用程序以及须要对硬件进行操作的场合,用C语言明显优于其他高级语言。
C语言的设计影响了很多后来的编程语言。比如C++、Objective-C、Java、C#等。
二十世纪八十年代。为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C。作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持符合ANSI C的语法。C语言从诞生到如今先后有了三个标准:ANSI C / C89标准、C99标准和C11标准。
C语言的长处非常多。主要有下面几点:
1、简洁紧凑、灵活方便
C语言一共仅仅有32个keyword,9种控制语句。程序书写形式自由,区分大写和小写。
把高级语言的基本结构和语句与低级语言的有用性结合起来。C 语言能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最主要的工作单元。
2、运算符丰富
C语言的运算符包括的范围非常广泛。共同拥有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C语言的运算类型极其丰富,表达式类型多样化。
灵活使用各种运算符能够实如今其他高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活有用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得。其程序设计更主动、灵活。它语法限制不太严格。程序设计自由度大,如对整型量与字符型数据及逻辑型数据能够通用等。
5、同意直接訪问物理地址。对硬件进行操作
因为C语言同意直接訪问物理地址,能够直接对硬件进行操作。因此它既具有高级语言的功能,又具有低级语言的很多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最主要的工作单元,可用来写系统软件。[20]
6、生成目标代码质量高。程序运行效率高
C语言描写叙述问题比汇编语言迅速。工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。
C语言一般仅仅比汇编程序生成的目标代码效率低10%~20%。[19]
7、可移植性好
C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不修改或稍加修改,就可移植到还有一个全然不同的环境中运行。[19]
8、表达力强
C语言有丰富的数据结构和运算符。
包括了各种数据结构,如整型、数组类型、指针类型和联合类型等。用来实现各种数据结构的运算。
C语言能直接訪问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的很多长处。
它既可用来编写系统软件。又可用来开发应用软件,已成为一种通用程序设计语言。
另外C语言具有强大的图形功能,支持多种显示器和驱动器。
且计算功能、逻辑推断功能强大。
3、C语言怎样生成程序
我们编写好的C语言代码是不能直接运行的,须要一系列的步骤将其转换成能够在硬件上运行的程序(可运行代码)。
当中最重要的步骤是进行编译和链接。
编译就是把文本形式源码翻译为机器语言形式的目标文件的过程。编译过程须要使用编译器。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成终于生成可运行代码的过程。链接过程须要使用链接器。
编译和链接的流程例如以下:
4、C语言的编译器
C语言的编译器种类繁多,比較经常使用的有下面几种。
1、GNU/GCC
这是由GNU组织开发的编译器。最初用于Unix系统。
眼下GCC是Unix/Linux系统的必备编译器。
2、VC编译器
严格意义上说VC不算编译器。应该是集成了编译器的IDE,是Windows系统开发的首选。当前最新版是VC2013。
官网:http://www.visualstudio.com/
3、Intel C++ Compiler
Intel C++Compiler是美国 Intel 公司开发的 C/C++ 编译器,适用于 Linux、Microsoft Windows 和 Mac OS X 操作系统。该编译器的最新公布是 Intel C++ Compiler 2013 版
官网:http://software.intel.com/en-us/articles/intel-compilers/
4、mingw32/cygwin/Djgpp编译器
这三个都是GNU/GCC的分支。
C语言入门系列主要採用VC2013环境进行解说,并涉及GCC编译环境。
0X01 第一个程序 开始的第一个程序是一个最简单的程序,也就是最经典的Hello World程序,它的功能为打印出Hello World。程序的内容非常简单,也是C语言编写程序的基本结构框架。下面就通过此程序开始介绍C语言。 #include <stdio.h> main() { printf("hello world\n"); }