网站首页 > 技术文章 正文
有很多人最近刚刚学完C语言再向我吐槽:c++好难啊,感觉又要入门到入土了。
听过一个笑话,程序员们互相聊天,程序员A问到:为什么C++比C麻烦那么多?”
程序员B回答道:“有了对象能不麻烦么。”
同样衍生出来的还有一个小故事:情人节,有人看到C一个人喝酒,便问:你的好哥们C++、Java、Python他们呢?C说:都过情人节去了。问:你为什么不过呢?C说:因为我没有对象。
计算机行业的人都知道C、C++、C#,但对很多想要入行的人来说可能就有点迷茫了,就好像不知道java和JavaScript的关系一样,面对这个多个C,如何选择成为了他们的一个小问题。
先简单的说一下三个语言
C语言是一种结构化编程语言。 它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。具有丰富的运算符和数据类型,便于实现各类复杂的数据结 构。而且还可以直接访问内存的物理地址,进行位(bit)一级的操作。
c语言的最大的特点就是效率高、可移植性强,C语言可以说是一种入门语言,只要精通了一种语言,则一通百通。
C++,如果说c语言面对的是过程,那么C++面对的就是对象,同样是侧重于计算机的底层操作,但是在C语言的基础上加了很多功能,所以被称作C加加,当然难度和复杂程度也有所增加,如图形处理,C++ 对文件的组织是以工程,各文件分类明确更加高效
C#,则是在C++的基础上再一次改进后的编程语言,语法类似Java但是难度却有所减少,侧重于网络和数据库编程。C# 是基于 IL 中间语言和 .NET Framework CLR 的,在可移植性,可维护性 和强壮性都比 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++,建议初学者最好别在如VC,BCB平台下写程序,那种自动化的代码生成,花花绿绿的界面,会让你手足无措。最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C/C++是成为VC,BCB高手的必由之路。
最后以C++的一个故事结尾:
当你有个锤子的时候,任何东西看起来都像钉子。当你的锤子是C++的时候,任何东西看起来都像大拇指。
猜你喜欢
- 2024-10-17 2021年了,为什么还选择C++?其余的不香吗?
- 2024-10-17 什么是C#(什么是c刊)
- 2024-10-17 既然C++开发效率低,为什么很多游戏服务端还是用C++来写?
- 2024-10-17 大数据核心技术有哪些 怎么样学好大数据开发
- 2024-10-17 编程语言C#的发展史,C#的优势,C#和Unity引擎。
- 2024-10-17 提升WinForm应用性能:C++与C#结合实现高效动画绘制的秘诀
- 2024-10-17 C#是全栈开发者的最佳选择?C#在游戏开发中的应用有哪些?
- 2024-10-17 为什么我选择C#?(为什么我选择成为一名研究生英语)
- 2024-10-17 专业解说:三个故事带你快速理解C、C++、C 的区别!
- 2024-10-17 C/C++被誉为“最经典的编程语言”,老师详解C#特性知识
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)