c语言与c 语言区别,c语言和c+语言的区别

首页 > 技术 > 作者:YD1662022-11-22 16:34:18

不同编程语言有不同的差异,但本质上都相同,都有着流程控制语句和循环、加减乘除运算等,都是通过批量处理来完成重复性的工作。一门好的语言要符合人性,让人使用起来顺手,还不容易出错,写的代码还易于维护和扩展,同时运行速度要足够快。这个世界上并没有完美的语言,不同语言在不同环境下有着不同的优势。以下让我们通过一个算法实例来理解不同语言之间的差异。

c语言与c 语言区别,c语言和c+语言的区别(1)

算法例子:质因数分解算法

我们通过这个算法例子来简单弄明白各语言之间的差异,以下给出的是部分实现代码,更详细代码需要查看源文件。

首先什么是质因数分解算法?即任意一个合数可以分解为多个质数相乘。

例如:20 = 2 * 2 * 5; 45 = 3 * 3 * 5; 210 = 2 * 3 * 5 * 7

按数学运算:列竖式或左右分解,拿能被整除的最小的质数做除数,不断整除得到新的得数,最后把所有的除数和最后的得数连起来就是。

c语言与c 语言区别,c语言和c+语言的区别(2)

质因数分解图例

代码实现思路:
  1. 先设立一个除数,从最小的质数开始,也就是2;
  2. 当能够被当前除数整除时,该除数就是因数,将原数字设为被整除后的结果;
  3. 继续从该除数开始整除新的结果,并不断循环;
  4. 当无法被整除时,则递增得到新的除数,继续第2步;
  5. 直到除数的平方大于要分解的值,终止循环。 最后所有的除数与剩下的大于1的那个得数就是分解结果。
各种编程语言的比较:

一、C语言

C语言是面向过程的静态编译型语言,也是一切高级语言的鼻祖,可以说如今几乎所有流行的语言都有C语言的影子。C语言在底层开发,包括操作系统、驱动、中间件、图形库、数据库、网络库等开发等有着无可替代的作用。

C语言的生命力也是最长的,流行了近50年,至今还是开发排行榜前3的位置。C语言足够简洁清晰,没有那么多概念,也没有那么多API,性能极好,它是所有编程人员都应该掌握的语言,可以作为计算机基础来学。

C语言代码实现如下,该factorize可以返回一个分解后的数组。从代码里可以看出,首先需要申请一个动态数组result,长度为len的内存空间。该数组用来保存分解数,每分解出一个数字时则追加到数组中去,数组下标也随之增加。当分解完成后,最后返回分解数的数组。

c语言与c 语言区别,c语言和c+语言的区别(3)

代码逻辑:
  1. 建立双循环,自最小的质数2开始不断递增遍历。
  2. 外层循环为是否继续分解的条件,当i的乘方小于等于要分解的数字时,说明还可以分解。i不断递增,直到i的平方大于num为止。
  3. 内循环则不断用num来除以约数,看能否除尽,能除尽则以得数作为新的num来继续分解,并将刚才的除数i追加到分解结果中。当i无法整除num时,说明当前i分解完成,则跳出内循环。
  4. 当循环终止后,最后分解的得数如果小于i的平方就没法继续分解,如果i大于1那剩下的num就是最后一个分解数。

二、C 语言

C 语言是C语言的超集,它扩充和完善了C语言。增加了类的概念,并引进了运算符重载、引用、虚函数等。C 做什么都离不开对象和类,其核心思想是多态,继承,封装。C 的语法与C几乎一致,基本上C的代码可以在C 下运行,但是C 比C语言要复杂和更难掌握,相对来讲C更加清晰易懂。

由于C语言相对简单,且是过程式,开发大型复杂系统或者大型软件界面时会力不从心,于是C 应运而生。其实我并不觉得C 比C好或强大,大型系统完全可以通过自己组织代码来得到良好架构,也有很多单独C语言UI库。

C 的生命力也很强大,几乎是很多中大型系统、游戏、桌面软件、服务端、网络通信等的首选语言,至今也在开发排行榜前5的位置。

这里C 代码实现与C语言一致,因为没有用到面向对象,所以没有任何区别。其他差异可以从GitHub仓库里查看。

c语言与c 语言区别,c语言和c+语言的区别(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.