c语言的面向对象,c语言的面向对象是什么

dfnjsfkhak 14 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言面向对象问题,于是小编就整理了3个相关介绍c语言的面向对象的解答,让我们一起看看吧。

  1. 老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?
  2. c语言是面向过程还是对象?
  3. C语言是面向过程的语言,C++是面向对象的语言,该怎么理解?

老师说C语言是面向过程编程语言,它能使用面向对象编程吗?如何使用?

C是面向过程的,在语言这一层面上并没有支持类和对象的概念,C++才支持的。但是,面向对象,本质上是一种编程和设计思想。即使用纯C,仍然不妨碍人应用面向对象的编程思想。倘若研究过Linux源代码就应该有点印象,它是纯C写的,但是里面很多函数指针,本质上是模块之间互相松耦合,体现的就是面向对象的设计思想。

谢谢邀请。

c语言的面向对象,c语言的面向对象是什么-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

其实,“面向过程”和“面向对象”只是程序开发中的一种方法,或者说一种思想,大多数现代高级编程语言都能使用这两种编程思想,C语言当然也不例外。

只不过,有些编程语言在语法上支持“对象”,而C语言则没有原生的“对象”语法。不过借助于灵活的指针和结构体语法,在C语言程序开发中使用“面向对象”思想也是很简单的。

鉴于题主可能是C语言初学者,在开始讨论如何使用C语言进行“面向对象”开发之前,先介绍两个新函数——malloc() 和 free() 。

c语言的面向对象,c语言的面向对象是什么-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

如果题主看过我之前文章的话,应该明白C语言程序每调用一次函数,就会在栈中分配一块栈帧给被调用函数,当函数执行完毕后,这部分栈帧就自动被系统收回了。

malloc() 函数的作用是申请一块指定大小内存,它的C语言原型如下,成功时返回这块内存的首地址,失败时返回 NULL。

C语言程序中函数的局部变量占用的内存,是函数运行时,自动在其所属栈帧中分配的,所以局部变量会随着函数结束释放。不过,malloc() 向系统申请的内存在堆区里,这部分内存不会随着函数的退出自动释放需要程序员自己使用 free() 函数释放:

c语言的面向对象,c语言的面向对象是什么-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

c语言是面向过程还是对象?

1、c语言是面向过程。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现。面向过程是着重于其中程序设计算法、语言的运用。

2、C语言是面向过程的语言,而C++是面向对象的语言,C++支持面向对象功能的程序设计语言。

C语言是面向过程的语言,C++是面向对象的语言,该怎么理解?

问题的提法不准确

准确来说,C不是面向过程的语言而是结构化语言。由于早期的PASCAL语言是以“过程”来定义程序功能单元的,因此结构化语言经常被误解为面向过程的语言。面向过程的语言是以FORTRAN为的一类语言。

首先,我们讨论一下面向过程,结构化和面向对象三种语言的特征。

面向过程的语言是以过程处理为导向对处理过程进行排序数据流贯穿于处理过程。其特点是根据时间流或处理顺序对程序进行编制。典型代表是BASIC,FORTRAN,主要用于有限元,数值积分科学计算程序的编制。现存的面向过程的语言极为罕见。

结构化语言是将程序的处理机能进行分类并分别对其进行封装。同时,对数据按其归属进行分类、封装。最后,根据问题的逻辑机构关系对各封装块进行拼装。结构化语言的基本特征是以功能处理模块和数据结构模块为基本单元进行程序构建。其典型代表为C。

面向对象的语言是在结构化语言的基础上根据对象将结构化的功能和数据按其对象的归属进行分类后将其结构化并进行封装。面向对象可以被理解为较结构化更加深入的结构化。面向对象的语言是从C++开始的。

经过对三类语言的分析,我们不难看出,C和C++实际上是一种语言的两个阶段,C是婴幼儿,C++则是成熟后的C。

面向过程是相对于过程而言,你完成一件事需要哪些步骤你心里要有数,在敲代码时,你敲得一个个函数代表完成一件事所需要的一个个步骤,完成调用函数解决这件事情,也就是面向过程的体现。它强调的是功能行为。而面向对象是相对于面向过程而言,它将对象封装进对象里,强调具备功能的对象。

我们以“把大象放进冰箱”为例,简洁明了的说明二者之间的区别。

面向过程,具体步骤入下:

1. 把冰箱门[_a***_];

2. 把大象放进去;

3. 把冰箱门关上;

对应的伪代码如下:

面向对象,是以关联的事物为线索:

1.人的属性:有打开冰箱、操作(将大象放入冰箱)、关闭冰箱的动作

2.大象的属性:进入冰箱

到此,以上就是小编对于c语言的面向对象的问题就介绍到这了,希望介绍关于c语言的面向对象的3点解答对大家有用

标签: 面向 语言 对象