C语言是在C语言的基础上构建成的C这个名称寓意着C是对C的超越和扩展。但是C语言和C语言在设计哲学、编程范式和应用场景上存在着根本性的差异。今天来讲讲这些差异以期对程序员在开发项目时选择合适的工具起到一点帮助的作用。一、C语言程序可以改成C程序吗当然可以因为C语言和C语言完全兼容。如果单纯的将C语言程序改成C程序好像很简单。比如我们要完成这个程序输入一个圆的半径输出圆面积和圆周长。C语言程序如下程序1其中第2行#define PI 3.14159是预处理意思是给3.14159一个替代PI也就是说在程序里凡是出现PI的地方就换成3.14159。这样做有什么好处呢好处就是当你觉得想把3.14159改成3.1415926的时候不需要到程序里面一行一行修改只需修改这一个地方就可以了。程序1运行结果改成C程序程序2程序2运行结果运行结果跟程序1的区别在于它没法保证输出结果只有3位小数。但是我们可以看到C的输入输出流确实比C语言的输入输出方便至少不用那些%f来匹配变量的数据类型。有关C和C的输入输出区别我在之前的文章《C的输入输出流》里面讲述过有兴趣的朋友们可以翻看那篇文章看看。那么用cout来输出就不能指定小数位数了吗是可以指定的。在C中可以使用 头文件中的 std::fixed 和 std::setprecision 来指定小数位数std::fixed固定小数格式确保以小数形式输出std::setprecision(n)设置小数点后保留 n 位数字必须包含头文件和。程序3程序3的运行结果和程序1的一样输出数据保留了3位小数。但是C语言和C语言的不同并不是输入输出的区别。其实在C程序中也可以用scanf和printf函数输入输出只要引人的头文件是stdio.h就行。二、C语言和C语言的区别C和C最根本的区别在于其编程范式。C语言是过程式语言核心是面向过程编程即它关注的是如何一步步地完成任务。C程序由一系列的函数构成C语言的核心是函数、结构体和指针。C的核心是面向对象编程它关注的是“谁对象来完成任务”。C程序由一个个对象组成对象将数据成员变量和操作这些数据的方法成员函数封装在一起。C的核心是类、对象、继承和多态。以下是它们的区别。如果你是第一次接触C那么上面的术语肯定有很多看不懂没关系我们今天先讲什么是面向对象编程。三、面向对象编程先看以下几个基本概念(1) 类和对象面向对象编程是把所有的问题都归结为一个一个的对象所有同类型的对象就是同一个类。(2) 数据成员和方法成员类所具有的属性成为类的成员其中静态属性成为数据成员动态属性成为方法成员也叫函数成员。举个例子对于人来说所有的人都有的静态特征数据成员就是身高、体重、血型等等动态特征方法成员则是呼吸、吃饭、睡觉等。如下图这有点像C语言的结构体类型但是结构体类型没有动态成员只有数据成员。(3) 类成员的访问属性常用的类成员访问属性有3种私有访问权限private公有访问权限public保护访问权限protected今天只说私有访问权限和公有访问权限。如果一个成员是私有访问权限那么表示它只能在类内部使用。如果是公有访问权限那么它可以在任何地方使用。一般数据成员定义为私有的用private关键字定义方法成员定义为公有的用public定义。这就好像一部手机手机里面的cpu、芯片这些是数据成员我们不能触碰我们能触碰和使用的是关机、开机、调静音这些功能这些功能就是方法成员定义成公有的我们就可以触碰就可以使用。四、用面向对象的方法编程求圆面积和半径好现在我们再来看看这个求圆面积和圆周长的程序。如果用面向对象的方法来编写求圆面积和圆周长的程序必须先定义一个类即圆类这个类里面的数据成员有什么当然就是半径、面积、周长。方法成员有什么方法成员其实都是围绕数据成员来开展的要不就是取出数据成员的值要不就是改变数据成员的值。方法成员为什么又叫函数成员因为它就相当于C语言里的函数它的存在就是针对数据成员来开展的所以方法成员名后面也要括号。比如圆的方法成员有给半径赋值( )求面积( )求周长( )等。所以一个圆类可以如下定义类定义如下从这个类定义来看数据成员只要一个半径也可以了面积和周长都可以通过半径求出来所以数据成员可以删掉面积和周长。在主函数里就定义类圆的对象如由这个对象调用类里面的方法成员完成项目所要求的功能比如给x的半径赋值为10则需用用对象名x来调用方法成员setR()想输出面积用对象名x来调用方法成员fa( )具体程序如下。程序4运行结果这就是面向对象的编程方法与面向过程的编程方法有本质的区别。五、总结面向过程的编程方法C语言和面向对象的编程方法C是不同的。面向过程的编程步骤1、定义变量2、输入数据3、数据处理4、输出结果。面向对象的编程步骤1、定义一个类(1)定义类里面的数据成员(2)定义类里面的方法成员给出方法成员的实现代码。2、在主函数定义类的对象3、用类对象调用类成员。