0 什么是C?什么是C++?
0.1 概述
一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。
而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。
用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言就是人和计算机交流的一种语言。
语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能:
- 说的一方传递信息,听的一方接收信息;
- 说的一方下达指令,听的一方遵循命令做事情。
语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。
语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。
0.2 为什么要学习 C 或 C++
0.2.1 C语言特点
(1) 优点
-代码量小
-执行速度快
-功能强大
-编程自由(2) 缺点
-写代码实现周期长
-可移植性较差
-过于自由,经验不足易出错
-对平台库依赖较多
0.2.2 C++的特点
(1) 优点
-C++实现了面向对象程序设计。在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由C++来编写 的。
-C++语言非常灵活,功能非常强大。如果说C语言的优点是指针,那么C++的优点就是性能和类层次结构的设计。
-C++非常严谨、精确和数理化,标准定义很细致。
-C++语言的语法思路层次分明、相呼应;语法结构是显式的、明确的。
0.2.2 C++的特点
(2) 缺点(主要对比Java)
-面向对象没有Java彻底 由于C++要兼容C的内容,而C是面向过程的,所以C++不可避免地出现过程影子,并不算是完 全的面向对象的程序设计语言。
-C++的移植能力较差 由于C++的事实标准的存在,即各个编译器总存在差异,所以或多或少存在不兼容。而且各个软件 平台的C++启动代码和硬件指令不同,编译后的C++程序一般是不能跨平台的。
-C++的指针操作使得它不安全 Java没有指针,而C++的指针越界或野指针是造成弄脏内存的重要原因。但是事情总得一 分为二,C++的指针也是其效率大大超过Java的原因之一。
-C++可以直接操作硬件,带来了不安全 Java不提供硬件操作,而C++兼容C,使得它继承了其硬件操作功能,是祸是福, 各有说词。有人说它带来了不安全,也有人说它是所向披靡的屠龙之器。
-C++的动态对象必须及时销毁,否则可能会造成内存泄漏
-C++的在网站建设方面能力较差
0.2.3 C语言应用领域
C语言的应用极其广泛,从网站后台,到底层操作系统,从多媒体应用到大型网络游戏,均可使用C语言来开发:
l C语言可以写网站后台程序
l C语言可以专门针对某个主题写出功能强大的程序库
l C语言可以写出大型游戏的引擎 l C语言可以写出另一个语言来
l C语言可以写操作系统和驱动程序,并且只能用C语言编写
l 任何设备只要配置了微处理器,就都支持C语言。从微波炉到手机,都是由C语言技术来推动的
0.2.4 学习C语言的常见困惑