一、起源
C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的,它是一种通用的面对过程的编程语言,广泛应用于系统软件、应用软件和嵌入式开发领域。对标于汇编语言,旨在提供更高级、更易用的编程抽象,同时保持操作系统级别的灵活性和效率。
C++语言是由Bjarne Stroustrup在20世纪80年代初基于C语言开发而来的,旨在为C语言添加面向对象编程的特性,同时保留C语言的效率和灵活性。对标C语言,旨在为C语言添加面向对象编程的特性,同时保留C语言的效率和灵活性。
C#语言是由微软公司的Anders Hejlsberg在20世纪90年代末开发的,它是一种现代的面向对象编程语言,专为.NET Framework设计,其语法结构与C++和Java类似,但也具有自己独特的特性和优势。对标Java,旨在提供一种现代的面向对象编程语言,专门用于.NET平台开发,与Java一样具有良好的跨平台特性和强大的工具支持。
二、特点
C语言特点:
- 结构化编程语言,具有高效性和灵活性。
- 提供强大的系统编程能力,可以直接操作内存。
- 面向过程编程的特性,面对对象编程的特性需要通过函数和指针来实现类似的功能。
C++语言特点:
- 非完全面向对象编程,提供类、继承、多态等特性。
- 具有高效性、灵活性和可移植性,同时保留了C语言的特性。
- 支持模板元编程和泛型编程,提供了更高级的抽象能力。
C#语言特点:
- 完全面向对象编程语言,提供类、继承、封装、多态等特性。
- 支持自动内存管理和垃圾回收,减少了程序员的内存管理负担。
- 具有强大的.NET Framework支持,包括大量的类库和工具,适合开发Windows应用、Web应用和服务端应用。
解释:啥是面对对象?啥是面对过程?
前者分析主题为解决问题的行为执行者或者被执行者,后者分析主体为解决问题的过程步骤。做底层开发,我个人觉得C还是比较方便,但是上层开发C++或C#更加高效。
解释:为啥C++不可以称非完全面向对象语言,而C#可以?
C++可以称为非完全面向对象语言,因为它既支持面向对象编程(如类、继承、多态),又支持面向过程编程(如函数、指针)。而C#可以被称为完全面向对象语言,是因为它被设计为纯粹的面向对象编程语言,所有的代码都必须以类和对象的形式组织,没有面向过程编程的选项。