购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6 C语言与C++语言的区别

C++语言是由C语言发展而来的,C语言是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出或实现过程(事务)控制。而对于C++程序,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

1.6.1 程序设计思想的区别

C语言与C++语言的最大区别在于解决问题的思想方法不一样,即它们在程序设计思想上的区别。之所以说C++语言比C语言更先进,是因为“设计这个概念已经被融入到C++语言之中”。而就语言本身而言,在C语言中更多的是算法的概念,但是C语言是C++语言的子集。从上文可以看出,C语言实现了C++语言中过程化控制及其他相关功能,而在C++语言中的C语言,相对于原来的C语言也有所加强,引入了重载、内联函数、异常处理等概念,C++语言更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等。

再深入一点,在C++语言中,除了考虑数据封装、类型问题以外,还需要考虑诸如对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。所以相对于C语言,C++语言包含了更丰富的“设计”的概念。但C语言是C++语言的一个子集,也具有强大的功能,同样值得学习。

1.6.2 语法规范的区别

对于C语言和C++语言,它们在语法上的区别主要有以下几点。

1)在C++语言中,for语句中可以出现“for(int i=0;i<5;i++)”,即定义i的同时使用它;但在C语言中不能这样,只能先定义,然后再使用,如“int i;for(i=0;i<5;i++)”。

2)在C++语言中定义struct、union和enum类型的变量时,关键字struct、union和enum可以省略;在C语言中不能忽略。

3)在C++语言中,可以用const类型的整数作为数组的大小;在C语言中不可以。

4)在C语言中,const类型的变量是对外可见的,所以只能出现在源文件中;而在C++语言中,const类型的变量只有内部可见,所以可以出现在头文件中。例如,在C语言源文件中通过语句“const int i=2;”定义i,因为它是对外可见的,所以在其他的模块中可以通过声明“extern const int i;”来引用它;而在C++语言中,因为const类型的变量默认只有内部可见,如果想定义对外部可见的变量,必须用extern修饰,例如用“extern const int i=2;”定义变量i,如果是在C++文件中定义一个在C语言中使用的变量,可以用“extern”C“const int x=10;”语句。

5)因为C++语言中有new关键字,所以可以使用new动态分配数组,这样在定义数组的时候可以根据运行中的数据指定数组大小,用完后使用“delete[]”删除;而在C语言中,定义数组的时候必须明确指定其大小。 LzRfGfsnz5w3f38boOCgovp1/hLTeHFIwPXA4GtYBPEKrF8WaGj22hTHro0o4GXC

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开