C++和其他语言的区别(面试题)

目录

1. C++和C语言的区别

2. C++和Python的区别

3. C++和Java的区别

3.1 语言特性

3.2 垃圾回收

3.3 应用场景


1. C++和C语言的区别

  1. C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
  2. 标准C++中的字符串类取代了标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。
  3. C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
  4. C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
  5. 在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。也就是C++可以重载,C语言不允许。
  6. C++语言中,允许变量定义语句在程序中的任何地方,只要在是使用它之前就可以;而C语言中,必须要在函数开头部分。而且C++不允许重复定义变量,C语言也是做不到这一点的。
  7. 在C++中,除了值和指针之外,新增了引用。引用型变量是其他变量的一个别名,我们可以认为他们只是名字不相同,其他都是相同的。
  8. C++相对与C增加了一些关键字,如:bool、using、dynamic_cast、namespace等等。

2. C++和Python的区别

  1. Python是一种脚本语言,是解释执行的,而C++是编译语言,是需要编译后在特定平台运行的。Python可以很方便的跨平台,但是效率没有C++高。
  2. Python使用缩进来区分不同的代码块,C++使用花括号来区分。
  3. C++中需要事先定义变量的类型,而Python不需要,Python的基本数据类型只有数字,布尔值,字符串,列表,元组等等。
  4. Python的库函数比C++的多,调用起来很方便

3. C++和Java的区别

3.1 语言特性

  1. Java语言给开发人员提供了更为简洁的语法;完全面向对象,由于JVM可以安装到任何的操作系统上,所以说它的可移植性强。
  2. Java语言中没有指针的概念,引入了真正的数组。不同于C++中利用指针实现的“伪数组",Java引入了真正的数组,同时将容易造成麻烦的指针从语言中去掉,这将有利于防止在C++程序中常见的因为数组操作越界等指针操作而对系统数据进行非法读写带来的不安全问题。
  3. C++也可以在其他系统运行,但是需要不同的编码(这一点不如Java,只编写一次代码,到处运行),例如对一个数字,在Windows下是大端存储,在Unix中则为小端存储。Java程序一般都是生成字节码,在JVM里面运行得到结果。
  4. Java用接口(Interface)技术取代C++程序中的抽象类。接口与抽象类有同样的功能,但是省却了在实现和维护上的复杂性。

3.2 垃圾回收

  1. C++用析构函数回收垃圾,写C和C++程序时一定要注意内存的申请和释放。
  2. Java语言不使用指针,内存的分配和回收都是自动进行的,程序员无须考虑内存碎片的问题。

3.3 应用场景

  1. Java在桌面程序上不如C++实用,C++可以直接编译成exe文件,指针是c++的优势,可以直接对内存的操作,但同时具有危险性。(操作内存的确是一项非常危险的事情,一旦指针指向的位置发生错误,或者误删除了内存中某个地址单元存放的重要数据,后果是可想而知的)。
  2. Java在Web应用上具有C++无可比拟的优势,具有丰富多样的框架。
  3. 对于底层程序的编程以及控制方面的编程,C++很灵活,因为有句柄的存在。

你可能感兴趣的:(C++,c++,c语言,python,java)