C语言面向过程编程的语言;C++面向对象编程的语言。
两者有本质的区别,其实是完全不同的两种语言,只不过C++兼容C语言而已。
其中C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C语言添加了面向对象的结构。现在C++已经不只是C语言的扩展了,它已经完全可以被看作一种新的编程语言。虽然C语言的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。
C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于跨平台,C/C++也是很好的语言,因为所有平台都支持,不同的是,不同平台支持的实现不同,类库不同,要编写跨平台的程序,需要选择跨平台的类库,如标准类库,如果标准类库的支持不够也只需要附加编写一个跨平台的支持类库。
如果大家对于学习C/C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,下面是我的C++交流qun696399210,有任何问题可以随时来咨询我。
下面来看看 985,211的学霸们都是怎么理解C语言的?
网友一:
C语言是最基础的编程语言了,其实,对于理工科专业的人来说,C语言并不难,C语言都学不好,怎么学习C++、C#、Java、汇编语言等,这些语言比C语言要难得多。也许是因为刚接触C语言,刚刚接触一门全新的课程,所以感觉比较难。
记得本人大学刚开始接触C语言的时候,也是一头雾水,根本不懂C语言是干嘛用的,听课时也是晕乎乎的。感觉很虚的东西,计算机二级考试也是勉强合格。后来,本人报名了一个电子设计竞赛,经常在实验室里编程做项目,才慢慢体会到C语言的真正用处。后来对C语言产生了兴趣,课余时间经常到实验室设计项目。到大三的时候,报名参加了全国电子设计竞赛,估计是运气好吧,拿了一等奖。
网友二:
C语言难学,个人认为是被国人误传或误教所致。一直以来,高校理工科都开设了C语言,学生稀里糊涂开始学习。在不清楚学习目的、所需前提知识的情况下,仅学习些基础语法知识,导致大部分学生学习效果不理想,从而造就了C语言难学的传说。
C语言是程序员与计算机进行交流的一种语言,目的是达到对计算机进行控制,实现程序员预期的效果或功能。因此,为了能更加有效地进行交流或控制,除了学习些基础的语法知识外,还要求学习者对交流对象要有较清楚的了解或熟悉(即所需前提知识),和掌握一些必要的交流技巧(思维方式或套路类的东西)。
网友三:
c的语法是现在语言中比较简单的,要说语法是就只有c++最为复杂了。大家说的c难是因为,用c开的的东西一般与系统api和算法有关。算法这个,没个数学功底真的想不到,其它的语言没有比较高级的算法,其它语言的算法也都是c语言从语言的底层(不是系统的底层)实现的,再封装成语言的算法库。
系统api,这个东西不像语言层级的api那么简单,它是系统直接关系的相当复杂,要了解系统、信号、返回值这东西表现出来的现象多,与你要做一个东西有不同的处理。还有一个点c实现的东西要考虑到性能,这个不简单,不是简单的io性能,要考虑内存拷贝的消耗、堆栈开关的消耗、cpu调度的消耗。
网友四:
从没觉得c语言难学,相比后来的大量的面相对象的语言,c语言其实非常好学,学习门槛并不高。
如果说到难,一个是数据结构,这个东西比较枯燥,而且严格说应该是属于数学问题而不是编程问题,第二是函数偏少,经常需要自己动手,不像主流oop们全都给你封装好了直接用,不过,从这点讲,也正是c语言的一大优势,让你知其然亦能知其所以然。
c语言属于中级语言,意味着它具备oop们没有或缺乏的的对计算机底层资源的操控能力,因此操作系统,驱动程序等基本都只能用c。
网友五:
学好每一种语言其实都不容易,即便是看起来入门很轻松的也是一样,想要做到精通非得有经过一定的项目上的磨练才行。
C语言学习曲线相对陡峭,除了学习者的个人意愿和投入,教授者的能力也是很关键的 - 很难想象一个没有C项目经验的人能教授的非常深入并有最佳实践分享 - 当然,平心而论,语法类的知识上的传授还是好的,而且修行还是靠个人的。
建议我们学习者多加以实践,重视调试的技能,逐步积累经验,联系实际应用,未来成功可以预期。
如果大家对于学习C/C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,下面是我的C++交流qun696399210,有任何问题可以随时来咨询我。
网友六:
很多人在学习C语言的时候,本来对编程很感兴趣的,最开始学习的时候也投入了大量的时间和精力在上面,理解了这,理解了那,到最后发现只是在黑窗口下面打印几行数字和字母;
学起来会觉得比较枯燥,而且越学越发现没意思,最后只能放弃,所以说,学习编程,换一种方式去学习可能会更好一些,比如说开发个小游戏啊,这样学起来可能会更有成就感,让人觉得学了这东西有用,可以做出东西来。
最后我来说一说了解C的必要性:
1. 对内存和硬件的操作,是目前绝大部分高级语言所隐藏的,只有坚实C背景的同学,才可以考虑的更多,如果你想对原理有更多的了解,那么C其实是不可绕过的一个环节。
2. 想要缔造一个新的系统和语言,没有C是不行滴(或许C++勉强)。
3. 不管是OC的消息系统,Java的自动回收,Ruby的动态类扩充,这些花哨且时髦的东西,其实都可以用C来实现,而且很多都是用C来实现的,如果你想自己实施,看C吧。
4. 破解和分析程序,C可以起到很大的作用。C是可以人为创建Bug来破坏一个系统滴。
最后我引用我的一个大牛朋友的话:“请不要忽视C语言,它上可九天摘月,下可五洋捉鳖”。
如果大家对于学习C/C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,下面是我的C++交流qun696399210,有任何问题可以随时来咨询我。