百科狗-知识改变命运!
--

“C语言”和“C++”的区别是什么?

百变鹏仔1年前 (2023-12-02)阅读数 27#综合百科
文章标签语言函数

一、最简单地可以这样理解:

C++是C的发展、延续和扩展。除工业特需外,单纯使用C进行实用编程的人已很少。

另外,C#是C++的仿照与扩展(但可能不能算是延继,底层实现完全不同)。

“C语言”和“C++”的区别是什么?

二、最通俗的理解:

1、为了降低编程难度,在C的基础上发展出了C++,C++的大部分语法与C相同,编程环境(编译器)完全不同,低层实现基本相同。

2、为了降低编程难度,在C++的基础上又发展出了C#,C#的大部分语法与C++相同,编程环境完全不同,低层实现的机理也根本不同。

3、在视窗操作系统中,编写实用程序,多数情况下用C++编程比用C编程工作量要减少十倍。

4、在网络应用,特别是三层架构的网站编写方面,多数情况下用C#编程比用C++编程工作量要减少十倍

5、减低了工作量的同时加强了稳定性(编写的代码越少,出错的机率自然越小),不可避免的减低了程序的运行效率(自动生成的代码中,很多是不必要的套路和不必要的调用)。

三、相关知识:

1、1972年美国贝尔实验室的 D.M.Ritchie 在B语言的基础上设计出了计算机C语言,1978年,C语言正式发布并制定语言标准。(够早了吧,比很多玩电脑的人的年龄都大),那时的计算机基本上只有专业的实验室里才能见到,普通人家是不可能有的。

2、1979 年,Bjarne Stroustrup 借鉴 Simula 中 "Class" 的概念,开始研究增强 C 语言,使其支持面向对象的特性,1983 年,这种语言被命名为 C++。此后,C与C++开始相对并行的发展。

3、相对于C语言来说,C++的很多的“高级”的写法和功能,是让编译器的“自动”去替代人工实现,这当然方便了程序编写人员,但是,正如很多自动化的东西一样,它自动生成的代码往往是“通用”的,套路化,在很多情况下,生成的代码的执行效率上会比人工编写的C语言低。这在计算机性能足够的情况下看不出问题,但在一些性能相对较低的运行环境中,就会有非常明显的差别,最典型的就是工业设计中的专用芯片的程序编写中(单片机控制)。

4、从语言的宏观上去看,C语言是面向过程,编程员要思考每一行代码对整个程序运行的影响,它最大的特点就是好的代码前后紧密联系,高速互动,最大的缺点就是出现故障时需要思考分析涉及的范围相对要广。

5、从语言的宏观上去看,C++在C语言的基础上引入了面向对象的概念,也就是说,它在编程思想上引入了一个一个功能模块单元的概念,用它进行程序编写,最重要的一点就是将整个程序的任务先分割成功能单元,单元之间传递必要的数据,每个单元之间相对独立。它最大的特点就是出现故障时,只需要对应功能单元及它的输入输出,这样排除故障就容易和快速得多,程序的运行也会可靠很多。

6、事实上,在当前,对于一般的win下的实用应用的开发,C语言基本上已经无能为力了。因为要在win下实现一个最基本的功能,用C去写,编程者要作的工作相对于用C++所做的工作,可能要多十倍以上。而且也没有足够的资料和可引用的代码(因为这样做的人少,所以,可供借用的也就少)。C++编程在win下已成主流之一。

7、随着计算机性能的发展,及网络技术的发展,C++也有它的后来者,那就是C#,对的,C++后面两个加号,C#的意思就是四个加号。从底层去看,类似于C++对比于C,C#也是方便了编程者但降低了程序的运行效率。

8、C#的运行机理是,基于.net动态库的调用及部分win API的间接调用,C++的运行及win API的调用及部分设备底层的IO调用。C++编译出来的可以是真正的机器二进制代码(也可以是调用C++运行库),而C#编译出来的只是一种中间码在运行中由.net环境进行边解释边运行,所以在计算机性能不足情况下,C#的程序运行速度要明显慢。

9、但也正如C与C++之间一样,C#与C++也在并行发展中,C#能完成的事,理论上C++也能完成,而且可能在效率上会更好。但是,在某些项目上,用C++开发的难度会是用C#开发难度的十倍以上,比如编写一个WEB网站。

C++和C语言有什么区别?

c++与c语言的区别是对象不同、函数库不同、结构不同、设计思想不同。1、对象不同C语言是面向过程的,而C++是面向对象的。2、函数库不同C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。3、结构不同C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。4、设计思想不同C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛,在C的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。

c++和c语言的区别:1、关键字蓝色标注为C语言关键字,C++继承了C语言的所有关键字,以下红色标注为C++中含有但C语言没有的关键字(根据c++98中提出C++包含63个关键字)。2、源文件区别C语言文件后缀为c,c++原文件名后缀为.cpp。如果在创建源文件时什么都不给,默认是.cpp。3、返回值不同C语言中,如果一个函数没有指定返回值类型,默认为int类型,并返回一个随机数,一般为0XCCCCCCCC。在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过。4、参数列表在C语言中,函数没有指定的参数列表时,默认可接收任意多个参数。在C++中,有严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。5、C++支持函数重载,C语言不支持在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。

例如希望交换两个变量的值,这两个变量有多种类型,可以是int、float、char、bool等,我们需要通过参数把变量的地址传入函数内部。

在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:

void swap1(int*a,int*b);//交换int变量的值。void swap2(float*a,float*b);//交换float变量的值。void swap3(char*a,char*b);//交换char变量的值。void swap4(bool*a,bool*b);//交换bool变量的值。但在C++中,这完全没有必要。C++允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。6、指针和引用C语言中函数传参方式有两种:传值和传址。

以传值方式,在函数调用过程中会生成一份临时变量用形参代替,最终把实参的值传递给新分配的临时形参。它的优点是避免了函数调用的副作用,却无法改变形参的值。如果要改变实参的值,只能通过指针传递。指针可以解决问题,但是不安全,因此在C++中引入了引用。7、命名空间在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。

8、输入与输出

cout代表c++的输出流。

cin代表c++的输入流。

它们都是在头文件“iostream”中定义。

“cout”必须与”

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)