fread读结构体返回值是0无错误_C++编程这么学习,0基础入门也没想的那么难!...

cda46cfe1647f583530fa7bc2661ef90.png

前言

  • 读者定位是两类人群:
    a.初学者,即将入手 C++ 语言、不知道如何开始;
    b.已经开始学习C++许久了,却进度缓慢,抓不到精髓,倍感迷茫。
  • 本文不会深入到C++语言内部挖掘技术点。
  • 你本就是C++高手,开发经验丰富,可以对本文提一些建议。
  • 本文将结合小编自己的学习经历和经验,谈一谈 C++ 应该如何学习。

da4fe71fde8f9a207f5eaeb52ac34944.png

【文章福利】:

点击连击即可获取:

点击此处,领取,C/C++学习资料​jq.qq.com

学习开发用到的开发工具,完整项目源码免费分享等以及解答学习问题。大家在学习过程中有不懂的可以加入一起交流,对你学习C/C++语言会有很大帮助!

为什么 C/C++?

C++ 是一门编程语言,请注意它仅仅是一门编程语言。这句话的意思就是一旦有人在做语言好坏之争的时候,一笑而过即可。特定的语言只是用来在特定的领域解决特定的问题,仅此而已,尤其是现在众多语言纷飞的年代,这句话的正确性不容置疑。

在编程领域里,每个人都会有他/她的入门语言,各持己见。我个人认为 C 语言是一个很不错的选择,语法简单,深度可深可浅,高级语言的鼻祖。很重要的一点是现今的各种编程语言,或多或少都是 C 语言的衍生品,或者是衍生品的衍生品。语言相通,只要 C 语言学好了,上手其他语言问题不大。C 语言的灵魂在于指针,指针可以帮助你更好的理解内存,理解操作系统的工作机理。

C++ 是一门争议性语言,喜欢研究的人很多,吐槽的(包括一些大神级的人物)的人也很多。在 C/C++ 的时代(C/C++刚出道的时候),语言的可选性较少,所以 C++ 干了许多事情,现在时代不一样了,正如我前面所谓语言纷飞,针对性语言众多,程序员的选择性也就多了(有很多的优秀的语言可以去学,C#,java,php,python,ruby……),所以 C++ 不再是必须品。

在你开始学习之前,请慎重考虑一下,为什么要学?如果考虑好了,请继续阅读。

C++新手

选择一本好书

如果你发现以“数字”命名的书籍,请扔掉!(21天学通C++?)
如果你发现以“通”字样命名的书籍,请扔掉!(零起点学通C++?C++从入门到精通?)
如果你发现把“Visual” 和 “C++” 联系起来的 C++ 教程,请扔掉!(太多了,不举例了)
如果你发现“void main”作为实例的书籍,请扔掉!
如果你发现“”作为实例的书籍,请扔掉!
……

有几本书可以供你选择:《C++ Primer Plus》,《C++ Primer》,《C++程序设计语言》

小编入门用的是《C++入门经典》,继而读的是《C++ Primer》。其实好书和差书很容易区分,厚度和价位是一个很关键的点,通常薄薄的,又便宜,书名却非常霸气的告诉你如何精通,那你果断扔了,想都不要想。

选择一个好的IDE

请注意我强调的是IDE(集成开发环境),而不是套餐(GCC+VIM/EMACS+GDB+[linux]),对于一个初学者来说,一定要抓住重点。

初学者一定要相信这一点,网上太多人吹嘘学 C++ 不应该用 IDE ,就应该直接 文本编辑器+GCC 用 GDB 调试,进而言语鄙视 IDE 。我不知道你抱着什么心态,我只想说你入门是那样入门的吗?当时有没有 IDE ?你了解 IDE 吗?你公司用什么开发?

对于一个入门新手,一个人性化的调试环境是必须的。当然,作为一个 C++ 程序员的话,GCC/GDB 是必须要去了解的,linux 也是必须要会的。

C++入门(停留在表面)

参考标准:熟练掌握 C++ 语法结构,了解 C++ 主要模块,技术难点。大部分书上可以找到的知识点。

学习 C++ 要不要学习 C ?

作为这样的一篇文章,这个探讨几乎是必须要做的。

我的观点很明确,要学!

因为我先学 C 语言,后学的 C++ 的,而且学习使用过程中无数次穿插的相互学习。我的程序中从来没有刻意的区分这是 C 还是 C++,我把握的标准是怎么样方便怎么来。

就好像文件读写我从来都不用 C++ 的文件流,因为我习惯了 C 语言的 fread、fwrite、 fopen、 fseek、 ftell 等等。

我是站在语言的语法和库的角度来说“要学”的。如果你要学面向对象的话,那就没必要学 C 了,好像也没有学 C++ 的必要了,你可以选择一个纯面向对象的语言去学面向对象岂不更好。

总结,以我的个人经历来说,学 C++ 可以先学习 C 语言(观点已明确,探讨结束!)。

要了解哪些东西呢?总结是两点:语法和库。所有的语言几乎都是一样的。

  • 语法[基本类型、标准库类型、数组和指针、表达式、语句、函数等]
  • STL[容器,算法]
  • 模板与泛型编程
  • 类与面向对象

语法熟练的是必须的;熟练使用 STL 编程,面向对象思想不是一天两天就可以有的,需要不断的历练和实战才能培养出来的;面向对象在C++中的实现方式一定要熟(继承,派生,虚函数等);模板的实参演绎要搞清楚。

怎么学习C语言

希望我整理的 C语言的学习路线,能对你有帮助!

数据类型、变量、内存布局、指针基础;
字符串、一维数组、二维数组;
一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针;
结构体、文件的使用;
动态库的封装和设计;
函数指针回调函数。

配套书籍:

c0707ceb9860bc5c7477eaf7df52386f.webp

如何实现入门?

  • 看书。《C++ primer》,《C++标准程序库》,《C++ template》
  • 多思考,多写小程序。

C++进阶(技术研究)

参考标准:内部机理,奇淫技巧

  1. 深入C++内部,探究实现的机理[为什么模板不支持分离编译?虚函数/多重继承是怎么实现的?类型转换做了那些事情?异常处理?等]
  2. STL源码学习[学习别人的设计方法?为什么STL效率高(为达效率,无所不用其极)?学习数据结构和算法?内存池?RTTI?等]
  3. 内存[理解指针运算?内存对齐?类的内存布局?new/delete 和 malloc/delete的区别?函数变参的实现?存储方式?智能指针?等]
  4. 编译器在编译,链接的过程中偷偷的做了那些事情。[如何分析编译器的提示?链接错误代表可能出现哪些问题?等]
  5. 跟上C++库的潮流,研究新标准。

如何实现进阶?

  • 看书。Effective 系列书籍,《STL源码剖析》,《C++标准程序库》,《C++沉思录》,《高质量C/C++编程》,《C++编程思想》,《深度探索C++对象模型》等。
  • 写软件,遇到问题之后自己折腾,自己探索。
  • 逛社区,回答别人的问题。
  • 多看看别人的博客。
  • 结交自己的技术圈子。

最后给大家几个忠告来结束本文吧:

  • 多交流:不管你的技术多么硬,你都不可能一个人做完所有的事情,你要学会与别人合作,与别人交流。交流过程中,要注意交流技巧。学会尊重别人,但要不亢不卑。
  • 多动手:熟能生巧,这是万能之理。我们干的是技术活,最能证明自己能力的就是干!不是扯淡!
  • 多思考:不要做编码机器。
  • 多总结:相同的问题不可能只出现一次,尤其是在我们这个行业。总结是为了你在以后更快的解决类似的问题,提高工作效率。

能说的还有很多,让博客待续……

文章福利

为了帮助大家轻松,高效学习C语言/C++,小编给大家分享一些学习资源,从最零基础开始,帮助大家在学习C语言/C++的道路上乘风破浪!

C/C++学习资料 任你拿

点击此处,免费领取C语言/C++学习资料​jq.qq.com

PS:如果觉得对您有所帮助,欢迎关注、点赞! 转发一下 分享一下

f5a34ac1a18be5ed33ae48cdc1d75f1c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值