c语言和差,C语言与C++的差异是什么?

https://www.toutiao.com/a6553545849446596867/

C++是在C语言的基础上开发的一种通用编程语言。所以C++可以直接使用C语言的语法及头文件。反过来C则不可完全用C++的语法。C++语言在变量、输入输出、引用类型、堆栈内存申请、结构体上都与C语言都存在差异,同时C++新增加了重载,类之类的实现面向对象编程。

1、 变量

C++中增加了bool布尔类型,只占1个字节内存空间。

C中则没有。C 中要用int 类型定义,占空间较多,不方便。

139398613_1_20180724100636153

2、 输入输出区别

C语言用scanf()、printf()函数作入输入、输出函数。用法较复杂。

C++则用cin、cout作为输入、输出。用法较简单,不易出错。

139398613_2_20180724100637278

3、 堆栈内存申请

C语言用malloc申请内存空间,用free释放。C++则用new申请,用delete释放。

139398613_3_2018072410063860

4、 引用形参

C++中函数可以使形参,C中则没有此用法。

139398613_4_20180724100638263

5、 函数重载

C++中函数名可以相同,只要参数个数、类形不一样则可。在C中就不可以。

139398613_5_20180724100638372

6、 结构体

C++中对struct结构体进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了。它可以包含成员函数、能继承、能实现多态。这使得C++可以实现面向对象编程。C++中用class关键定义类。

139398613_6_20180724100639638

谢邀请!简单说,C 是 C++ 的子集,或者说 C++ 是 C 的超集。

C 的最大优点是编译后代码运行效率接近汇编程序,速度快,资源占用少。因此早期很多重要应用软件、支撑软件甚至系统软件是用 C 编写。虽然比汇编程序稍差,但开发和维护成本要低得多。C++ 继承了 C 的这一优点,并大大扩充了功能,因此在 Unix,Linux, Windows, Mac OS 这些系统下得到广泛应用,甚至操作系统本身都是用 C++ 编写,只有对效率最敏感的底层处理才用汇编程序。

C++ 对 C 做了很多扩充,最大的改变是引入 OOP(面向对象编程)概念。OOP 也是以函数为基础,但相关函数围绕特定任务封装成一个整体。OOP 的中心是数据。开发者要首先定义出数据结构,然后选择数据的处理方法。因此在 OOP 中函数被称为方法(method)。数据和用以处理数据的方法封装成一体形成对象(object)。OOP 的对象可以继承和扩展。例如,有对象 A 作为基础对象,对象 B 和 C 都继承了对象 A,并分别扩充了不同功能,B 和 C 就是对象 A 的派生对象。还可以从 B 和 C 派生出更上层的对象。这样一层层形成树状结构,建立一个强大的处理体系。不难想见,这样非常有利于整个系统的合理构思,同时显著提高开发和维护效率。这样写程序就好像在制造零部件。理想状态下,程序可以由零部件组装起来。

现在很多语言都引入了 OOP 概念,有些甚至模仿 C 和 C++ 的表达方式,如 Javascript, PHP, Java,C# 这些。但这些语言出于安全需求或跨平台需求,全都缺少 C++ 的底层处理功能,例如都不能直接访问内存空间。所以写系统软件仍然离不开 C++。在 Windows 环境下,和 C++ 最接近的是以 Pascal 为语言蓝本的 Delphi。二者的功能几乎可以相互取代。Delphi 编译速度比 C++ 高出很多,但由于历史原因,其影响力比 C++ 要小得多。

C++是一个诱饵,诱使那些贪图所谓方便的程序员为了一点小利远离程序的本质,使所谓的上层程序员与底层程序员相互依赖,程序员与硬件工程师又相互依赖,不能独立完成工作,最终都被资本奴役。在我看来这些技术本质都是相通的,之间的差异完全是人为造成的,C++的那些所谓的类,封装,用C语言完全可以实现,然后一劳永逸地调用,搞懂了C++类的C语言实现原理才算真正懂得了C++的类,真的弄懂了类的实现,用不用C++就变得无关紧要了

他们基本的数据类型一致,基本语法相同,你可以在c++上直接使用c的语法和头文件,调用c库。c++上多了对象,所以会有很多不同的用法。特别是字符串处理,要比c麻烦的多,但支持更多字符串类型。对象的操作要麻烦一些,有时你需要复制对象指针,有时你只需要原来那个指针。我个人是经常搞混。当然,c++ debug起来比c要方便的多,这也是为什么它是大型项目首选。运行效率上面,还是c效率更高。小型项目,比如设备驱动,c是非常高效的。操作系统虽然看上去巨大,但都是一个一个小项目组成,而且,需要更多灵活性。因此,操作系统很难用c++写。

C++比C多了些东西,比如引用,异常,带方法的struct,构造函数,析构函数,函数重载,template,右值,functonal等等,如果正真精通了C,完全可以在理解C++,没什么难的,难的是C++太强大,重载,模板,宏等组合起来后,一万个人可能会写出一万种框架。个人建议是,异常尽量不用,异常改变了执行流程;能用指针就别用引用,两个基本是一样的的东西,指针能判断有效性,引用没有,引用也有空指针的危险,空引用的崩溃栈没用;能用句柄加函数的就别用类,简单灵活,C要用的时候也没问题

C语言是一门汇编语言,它是基于底层开发的,由于没有现成的封装类很多功能都需要自己手动去写,开发周期较长,优点是只需要编译一遍,用C开发出来的程序运行速度快。

C++属于C的升级版是使用面向对象思想开发程序的,有现成封装好的类可以调用,用过面向对象思想开发程序的人都知道,这种方法开发比较快而且不容易出错,缺点就是要编译两遍,软件运行速度不如C。

C和C++最明显的差异就是C是汇编语言C++是面向对象编程。C++可以说是C的升级版,将C的代码功能封装成了一个个不同的类,通过对象调方法就可以了,所以C++比C的开发周期要短,但是有利就有弊C++需要多编译一遍所以运行速度不如C开发的程序快。

因为我工作原因对C++接触的相对来说比较少。但总体来说C语言是面相过程的,C++ 是面相对象的。可能一开始对过程和对象不大了解。说白了就是C语言实现的每一个过程都需要程序员一个一个的敲出来。而C++他里面有很多的类,程序员只需要使用类不用关心类里面的具体实现。同时相对于C++,C语言更接近系统底层实现,所以运算速度上C语言会更快一些。

C++高度兼容C的源码。还包含更多高级抽象的语法特点。

名字空间namespace

面向对象支持,class,继承,虚函数

函数中定义类或结构体

支持引用

支持模板,实现了泛型STL库

新C++标准还有匿名函数、Concepts、auto/decltype辅助类型推理、初始化列表

new/delete支持强类型内存分配和初始化

C语言与C++语言的区别在于C语言是结构化语言,而C++是面向对象的结构化语言。

顾名思义,结构化语言是将数据结构化,过程函数化的计算机语言。

而面向对象的结构化语言是将对象包括其数据及各种机能(以函数的形式表现)结构化的计算机语言。

C++脱胎于C语言,继承了C语言的全部语法特征及形式,可以说是C语言的扩充。

与C/C++中用结构描述数据结构相仿,C++中用类描述对象的结构。为了有效的描述对象的结构,在C语言的基础上C++引入的函数重载机能,继承的概念和衍生的概念。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值