C语言和C++的本质区别在哪

如题所述

这么说吧,C语言是C++的基础,也就是入门级别的,C++则是升级版。
一 区别
C++语言是在C语言的基础上进行了较大量的扩充和改进而得到的。它继承了C语言的全部内容,并在C语言的基础之上增加了面向对象编程的内容,C++既支持面向过程的程序设计,又支持新型的面向对象程序设计。因此C++并不是一种新的语言,也不是纯粹的面向对象程序设计语言,因此学过C语言的人只要了解了C++与C语言的区别,很快就可进入到C++的面向对象程序设计部分。

1、C++保持了与C语言的兼容
这种兼容性表现在许多C语言的程序不经修改就可为C++所用。用C语言编写的许多库函数和应用软件也都可以用于C++。
但是,这种兼容性使得C++不是一个纯正的面向对象程序设计语言。因为C语言是面向过程的语言,C++要与C语言兼容,所以C++也要支持面向过程的程序设计。由于面向过程程序设计和面向对象程序设计是两种不同风格的程序设计技术,对于已经习惯于面向过程程序设计的人员可能会有一定的障碍,相反没有学过程序设计的人员不会受面向过程程序设计方面的约束,更利于掌握面向对象程序设计技术。
2、C++对C语言作了很多改进
C++首先保持了语言的简洁、高效和接近汇编语言等优点,同时又给语言的不足和问题作了很多改进。下面列出一些重要改进之处。
(1)增加了一些在新的运算符,使得C++应用起来更加方便。
(2)改进了类型系统,增加了安全性,C语言种类型转换很不严格。C++规定类型转换多采用强制转换。又规定函数的说明必须用原型。对缺省类型作了些限制。
(3)增加了引用概念,使得引用函数参数带来了很大方便。
(4)允许函数重载,允许设置缺省参数,这些措施提高了编程的灵活性,减少了冗余性。又引进了内联函数的概念,提高了程序的效率。
(5)对变量说明更加灵活了。C语言只允许在函数体或分程序内,显示对变量的说明语句,再是执行语句,两者不可交叉使用。C++打破了这一限制,可以对变量随时进行说明。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-30
从编程思想的角度:C过程化的编程语言,
而C++则是通过api函数的调用中的参量的赋值,或api函数的返回值等等来
实现c++程序面向对象的编程。
概括的说:C是面向对象,C++是面向过程

什么是api?api简单来说就是提供给编程者以实现基本功能的函数的集合。
从二者的使用形势来看: 二者在使用时的绝大部份是完全一样或者基本一样,这点主要是由语
言的基本方法决定的,因为C++就是根据C发展的。例如:二者在引用
头文件时都是#include “***.h”,在定义宏的时候都是#define ***** @@@
、在定义变量都是类似int a、char ch....
说了这么多相同,不同点也是很多的,这主要表现在C++中为了实现统
编程而新加了很多内容,诸如新的类型,典型代表:类(class)句柄
(handle),以及大量的对原C语言的类型和对新加的类型的起“小
名”等再深说就太复杂,不利于新手对C++的理解。
总之,C++是对C的继承和深化。
造成二者不同的根源:学过C++的都一致认为其很难学:入手很难,即使C语言学的不错,依然
有 障碍!这一点毋庸置疑!为什么C++难学,如何才能学会C++?我个人
认为想学好C++首先就要认清C++和C之间的造成区别的原因。
形势主要表现在头文件上:C的头文件对没有像C++那样对标准函数库的
大量的、密集的集成,这注定了,学习C语言的时候,不用记住太多函数
,只要掌握编程思想就可以编写出程序。而c++则不同,
因为你光知道编程思想是不够的,是不能写出windows程序的,因为写
windows程序需要大量的windows api函数封装,构造出程序等,同时
C++编程新手可能根本不知道有哪些api函数可以实现自己想要的功能。
这也造成了C++的学习困难。。。。。。
说太多了,提问者看到了肯定会烦!
在这里我指明重点:C++和C在对基础类库的集成程度上的差异造成了
二者差异的主要原因。也是难度差异的主要因素。

以上为本人根据自己的实践经验和对二者的认识总结出来的观点和认识,
如果有某位大神认为我说的不对,完全可以指出,但不要乱喷,
我相信能掌握C++的人的素质不会低,毕竟都是程序猿了,作为高级知识分子没必要自降身份。
纯手打,谢谢支持!如果还有不明白的可以问我。
第2个回答  2023-04-26
两者区别有很多:1、不一样的程序思维,C语言是面向过程的,而C++是面向对象的。 2、C语言的数据库是松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。 3、C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。