学习C语言的时候,看的是“如鹏网”的《C语言也能干大事》系列视频教程,讲的挺不错的,课程体系的设置可以极大的激发对编程的兴趣,通过开发超级玛丽,飞机大战,汤姆猫,用C语言开发网站,开发校园一卡通系统等来讲解C语言的基础知识点,学起来不枯燥,没想到C语言还可以这么学。
1、C语言是面向过程的语言,C 是面向对象的语言,该怎么理解?
面向过程是具体化的,流程化的。解决一个问题,需要一步一步分析需要怎样,然后需要怎样,一步一步实现的,面向对象是模型化的,抽象出一个类,这是一个封闭的环境,在这个环境中有数据有解决问题的方法,你如果需要什么功能直接使用就可以了,至于是怎么实现的,你不用知道。从代码层面来看,面向对象和面向过程的主要区别就是数据是单独存储还是与操作存储在一起,
在类的里边,实现具体的功能还是需要流程化、具体化的代码去实现的,在类里还是需要具体的算法来实现的。总结来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象,如果想学习其中的一门语言作为入门的话,C语言是个不错的选择。学习C语言的时候,看的是“如鹏网”的《C语言也能干大事》系列视频教程,讲的挺不错的,课程体系的设置可以极大的激发对编程的兴趣,通过开发超级玛丽,飞机大战,汤姆猫,用C语言开发网站,开发校园一卡通系统等来讲解C语言的基础知识点,学起来不枯燥,没想到C语言还可以这么学,
2、老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?
谢谢邀请。其实,“面向过程”和“面向对象”只是程序开发中的一种方法,或者说一种思想,大多数现代高级编程语言都能使用这两种编程思想,C语言当然也不例外,只不过,有些编程语言在语法上支持“对象”,而C语言则没有原生的“对象”语法。不过借助于灵活的指针和结构体语法,在C语言程序开发中使用“面向对象”思想也是很简单的,
malloc()和free()函数鉴于题主可能是C语言初学者,在开始讨论如何使用C语言进行“面向对象”开发之前,先介绍两个新函数——malloc()和free()。如果题主看过我之前文章的话,应该明白C语言程序每调用一次函数,系统就会在栈中分配一块栈帧给被调用函数,当函数执行完毕后,这部分栈帧就自动被系统收回了,
malloc()函数的作用是申请一块指定大小的内存,它的C语言原型如下,成功时返回这块内存的首地址,失败时返回NULL。C语言程序中函数的局部变量占用的内存,是函数运行时,自动在其所属栈帧中分配的,所以局部变量会随着函数结束释放,不过,malloc()向系统申请的内存在堆区里,这部分内存不会随着函数的退出自动释放,需要程序员自己使用free()函数释放:以上这几行C语言代码的意思是向系统申请5字节的内存,如果申请成功,就把它释放。
如果在C语言程序退出之前,只malloc()而不free(),程序占用的内存会越来越多,直到最后崩溃退出,这种情况,程序员习惯称为“内存泄漏”。使用C语言进行“面向对象”编程相当一部分程序员看不起C语言是因为他们觉得C语言没有“对象”,现在,我们尝试给C语言找一个“对象”。请看:因为C语言不支持原生的“类”语法,所以我们使用结构体模拟了一个class,定义了一个“FATHER类”,它有成员函数hello(),
上述C语言代码又定义了一个“SON类”,它有成员函数hello(),也有成员变量count(),还有一个“父类”father。接下来,定义“FATHER类”和“SON类”的hello函数,相关C语言代码如下:如何让这两个函数与我们定义的“类”产生联系呢?我们定义“构造函数”:上述C语言代码首先使用malloc()为son在堆中申请一块内存,这保证了son在程序结束之前都不会被释放。