c语言和python区别
除了在语法使用上面的区别外,c语言和python的本质区别可能是在其语言性质上面的区别。
简单来说C语言是编译语言,Python是脚本语言。
1.C语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。
2.C语言的重要性是计算机界公认的有史以来最重要的语言;是所有大学工科和理科学生必修的课程;UNIX、Windows、Linux都是用C语言开发的;是任何一个想终身从事程序设计和开发的人员必须要熟练掌握的语言之一;是各大企业、外企招聘程序员必考的语言。
3.python有四种数据:整数,长整数、浮点数和复数。Python中没有表示单个常量字符串类型的char类型,其可以用单引号‘ ’或双引号“ ”来表示一个字符串,也可以用三引号来表示一个多行字符串。
编译型和解释型,在编程时的最大区别是必不必要写一个入口函数,在C语言里是 main,而 Python 可以不写。
编译型的优点是“静态”,代码不能一行一行编译执行,必须作为整个工程来编译,这样便于类型检查,降低运行时错误率;运行时效率更高,因为编译器可以统筹各个方面,生成更优化的机器指令;一经编译便可直接以机器语言再次执行。
解释型语言的优点是“动态”,代码的每一行可独立执行(代码块除外)。这样就可以灵活地进行实时交互,调整正在运行的程序,进行实时、异步的调试。
比如 Python 的 CLI(命令行交互界面)就可以直接输入 Python 代码执行。这是 C 语言这样的编译语言难以做到的(调试模式下可以做到 C 表达式的实时计算,但达不到解释型语言的灵活度)。解释型语言的特性还让其适合做脚本语言。
二者的缺点则互为对方占优的方面。编译型需要大量的编译时间,不够灵活。在大项目中,需求的更改可能导致巨大的重新编译时间。不过这被运行效率弥补,没有其他更大的缺点。而解释型语言被诟病得相对较多,比如因为不能事先编译,执行时都要先解释(本质上就是对单行的编译)成机器代码再执行,因此效率低很多。
不过针对这点,Python 现在会像编译型语言一样把第一次执行时产生的字节码(虚拟机器代码)输出到 .pyc 文件,下次若源文件未改变,可直接执行字节码文件,从而提升了运行效率。
另外,解释型语言难以实现静态类型检查,所以容易产生运行时错误,因此相对不适合用来做大项目。其实非要让编译型语言也能支持命令行交互也并非不可能——Haskell就是这样一个异类。它不仅能单行执行,甚至还能做静态类型检查。
在语言类型方面,
Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Python编译为字节码,然后由大型C程序解释;C是一种编译语言,完整的源代码将直接编译为机器代码,由CPU直接执行。
在内存管理方面,
Python使用自动垃圾收集器进行内存管理;在C语言中,程序员必须自己进行内存管理。
在应用方面,
Python是一种通用编程语言,一个多范式。它主要支持面向对象编程,程序编程,函数编程。
C是结构化编程语言。允许使用函数,选择(if / else等),迭代(循环)。它主要用于硬件相关的应用程序。
在速度方面,
Python编程语言因为历史原因,有一个GIL锁,导致其对多线程支持不够好,运行速度较慢;而C语言很快,C语言是比较底层的语言,运行效率上要优于Python。
复杂度不一样
在Python中不需要声明变量类型。而在C中必须声明变量类型。Python程序更易于学习,编写和阅读。而C程序语法比Python更难。Python中的测试和调试更容易;而在C中测试和调试更难。
Python相对其他语言而言是非常简单的语言,高度集成,代码量少。C是静态语言在变量在使用前进行声明,而Python是动态语言在使用的时候可以直接使用不需要声明,C里面没有对象而Python里面是有对象。C语言在运行的时候是需要编译然后运行,而Python是直接run的。