C语言教程(002)-C语言概述
C语言概述
1、什么是语言?
一提到语言这个词,人们自然想到的是像英语、汉语等这样的自然语言,因为它是人和人相互交流信息不可缺少的工具。
语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与。这是语言最重要的功能。语言就是用来表达意思传递信息的。说的一方传递信息,听的一方接受信息;说的一方下达指令,听的一方遵从命令做事情。自然语言是人与人交流的工具。
每一种语言都有独特的语法规则与语言定义。交流双方都了解明白并遵守这些规则与定义。一个只会说汉语的中国人,和一个只会说英语的美国人,只通过嘴巴发出声音互相交流,结果一定是对牛弹琴,信息完全传递不出去。为什么?因为互相不知道对方的语法规则与语言定义,当然听不懂了。
2、什么是计算机语言?
今天,计算机遍布了我们生活的每一个角落,除了人和人之间的相互交流之外,我们必须和计算机交流。用什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言。
和自认语言相同的是,计算机语言也有独特的语法规则和定义,如果不遵守规则,计算机就会听不懂。
和自然语言不同的是,计算机语言更为严谨,自然语言有时候有点小错误也不影响表达,而计算机语言则不行。计算机语言必须精准无误,计算机才会按照你的想法去做。
3、什么是编程语言?
编程语言计算机语言中的一类,编程语言有很多种,我们要学的C语言就是其中一种,除了C语言还有C++,C#,Java,Python,Go,汇编语言等等。每一种语言都有其较为擅长的领域。
比如:
- C/C++:C++ 是在C语言的基础上发展起来的,C++ 包含了C语言的所有内容,C语言是C++的一个部分,它们往往混合在一起使用,所以统称为 C/C++。C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统。
- Java:Java 是一门通用型的语言,可以用于网站后台开发、Android 开发、PC软件开发,近年来又涉足了大数据领域(归功于 Hadoop 框架的流行)。
- C#:C# 是微软开发的用来对抗 Java 的一门语言,实现机制和 Java 类似,目前主要用于 Windows 平台的软件开发,以及少量的网站后台开发。
- Python:Python 也是一门通用型的语言,主要用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域。
- Go语言:Go语言是 2009 年由 Google 发布的一款编程语言,成长非常迅速,在国内外已经有大量的应用。Go 语言主要用于服务器端的编程,对 C/C++、Java 都形成了不小的挑战。
- 汇编语言:汇编语言是计算机发展初期的一门语言,它的执行效率非常高,但是开发效率非常低,所以在常见的应用程序开发中不会使用汇编语言,只有在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等。
和出汇编语言之外的其它语言相比,C语言更接近计算机底层,可以直接操作内存,但也更难学。
4、代码,编程,及程序员
我们写一段代码:
#include<stdio.h>
int main(void)
{
printf("Hello world");
return 0;
}
这就是一段代码,也叫源码。写代码的过程叫编程,从事该行业的叫程序员,程序员经常自嘲为码农。
5、C语言是一门怎样的语言?
编程语言经历了几个阶段:
面向机器编程 - 面向过程编程 - 面向对象编程
- 面向机器编程用的是汇编语言,是最早期的编程语言。汇编语言学习成本非常高,开发效率非常低,难度极大,优点是运行效率非常高,因为它直接面向机器。
- 由于汇编语言开发效率低,人们被迫开发出了较高级的编程语言,C语言是面向过程的语言,很大程度上远离了硬件,开发过程已经颇为人性化,开发效率远高于汇编语言,学习成本也更低。运行速度远高于面向对象语言,因为和面向对象语言相比,C语言仍然没有完全脱离硬件。但C语言仍然不适合开发大型项目。
- 计算机硬件的飞速发展,使得硬件资源不那么珍贵,编程过程中不需要想尽办法的节约内存,而小的程序和项目也无法满足人们的需求,于是就诞生了更高级的语言,即面向对象语言,C++,Java,python等。这类语言在C语言的基础上进行了拓展,封装,也就是说,很多高级语言的底层依然是C语言。使得编程更简单,能够开发大型项目,但也更臃肿,自由度更低,运行效率也更低。
6、C语言和C++是什么关系?
C++语言原名C Plus Plus,是对C语言的拓展,增加了新的特性,比如面向对象,泛型等机制,大大提高了开发效率,以用于开发中大型项目。
C++完全兼容C语言,即C++包含C语言的一切,写的代码也都用同一种编译器,所以很难说C++是一独立的新语言。你学会C语言,C++就学会了一半。
7、C语言能做什么?
C语言很少用于软件开发和网站开发,而是多用于软硬件相接的地方,比如单片机,操作系统内核,硬件驱动等等。
只会C语言能做的事很少,但很多事都必须会C语言。比如如果你开发硬件驱动,你除了会C语言之外,还要会数字电路,了解操作系统内核等。
C语言能帮助你了解硬件,了解内存,了解编程,尤其是数据结构、算法、内存、线程、进程、通信、操作系统等底层的计算机知识,没有C语言基础是学不好的。
学会了C语言,其它语言会简单很多,语言只是工具,我们要做的是手中无剑,心中有剑。
关注微信公众号 axxd_lz后台回复【C语言】领取视频和电子书