网站首页 > 技术文章 正文
最近大一新生们刚刚结束第一个学期的学习,接踵而来的问题也越来越多,不同的学校有不同的学习节奏,但是基本上都是从C语言或者c++开始学起。现在越来越多的人对于“学习C语言还有必要吗?”这件事比较纠结。
首先很多人觉得C语言是c++的子集,觉得直接学习c++就可以了,还要花费一个学期的时间先学C语言有必要吗?
本身C语言和c++的编程方法不同,一个面向过程,一个面向对象。而要做出大型的、复杂的、精彩的程序,面向对象的语言就更适合。所以要学习c++这样的语言。但是,1.c语言是好多学校的基础课;2.c语言很容易描述算法;3.软件开发过程中也有很多面向过程的开发,以及模块化程序设计思想。要学习这些,比起学c++的复杂、困难程度,学c语言就可以达到上述目的。
其实c和c++应该放在一起来看,很多人都只是把c++当成一种高级版的c在用,思想上大部分还是c的思想。
我们写c++的过程中有很多种方法能够实现我们的需求,性能也会根据不同的设计,不同的人来说有很大的差异性,时间多的时候慢工出细活,写出来的可扩展,方便维护,稳定,高效的代码。但其实更多时候需要赶工,不会仔细写,只要能快速实现就行,代码几乎没有什么耦合,哪怕全部用c++标准写出来的代码,也不会成为标准的实现方式,更何况这些年stl被吐槽得越来越多了。所以不同的人写出来的c++程序差异性都很大,根据这一点可以变相认为c++性能上实际上并不稳定,直观的看就是驾驭不了c++的人很多。
然而c语言开发出来的程序,其实你会发现大家的实现方式和代码差异性非常小。因为c语言提供的实现方式很单一,两个水平相同的人写同样一个程序或者一个库,写到最后,拿来对比,会发现,实现方式会惊人地一致,大家几乎互相挑不出毛病来。但不要因此就看不起c语言,正因为实现方式上没有太多选择,你会把学习精力主要放在更底层的层次上去,就会直接导致你的基础比直接学习c++的人要牢固,往后学习c++的过程中就不会纠结很多问题,因为碰到任何问题,首先你可以根据实际情况让思维深入更底层去看。
其实学习C语言还是c++都是可以的,他并不影响你的知识面的扩充,有时间想学的同学可以根据自己的学习情况在课后去扩充,但是记得一定要根据自己学校的安排走,别人的看法都是别人站在自己的角度上说的,一定要在学校的安排里面有自己的时间和学习的进度安排,这样才能更好的提升自己。
针对大家现在正在纠结的问题,我这边也是整理了一些c/c++的基础的知识点和项目实战的资料,感兴趣的同学可以关注我的专栏或者私聊分享,希望大家在课后能够多多的努力,毕竟老师能帮你的只是传授和答疑提醒,课后的时间还是需要看大家的努力。
猜你喜欢
- 2025-07-02 嵌入式程序开发,C语言和C++究竟应该用哪个?
- 2025-07-02 C 语言和 C++ 有什么区别?老程序员居然这样理解,不怕你不懂
- 2025-07-02 Rust 比 C 更快吗?(rust与c的性能)
- 2025-07-02 C++ 与 C 的那些事儿:深度剖析两者区别
- 2025-07-02 C++到底有多难?难在哪里?(c++ 难度知乎)
- 2025-07-02 为什么大家都觉得学C/C++编程难?(为什么说c++难学)
- 2024-08-02 为什么C++这么难?从要学习的东西看,不看技术细节就已经很难
- 2024-08-02 为什么C++不是最好的入门语言?(为什么c++难学)
- 2024-08-02 学习编程丨为什么C++是最难学的编程语言?看大神怎么分析
- 2024-08-02 C++是不是最难学的编程语言?如果我想自学C++,真的能够学会吗?
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 507℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 486℃MySQL service启动脚本浅析(r12笔记第59天)
- 466℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 464℃启用MySQL查询缓存(mysql8.0查询缓存)
- 444℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 423℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 419℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)