typescript官方中文文档,typescript是什么意思( 三 )


也就是说,先学习大量知识和细节,然后总结归纳、提纲挈领,就彻底掌握了这门知识 。而学习C语言,一开始就不那么厚:) 。
大道至简,只需一本:
这书中英文版均可,前面谈到过,C语言本身特性并不多,所以这些年来从C89到C99到C11,只是增加了一些细枝末节的改动,现在你用C89的书仍然没有什么大问题(当然还是用第二版C99吧) 。
不用买一堆入门到精通、高级C、本质论、互相参照 。C语言的教材、参考书都是这薄薄一本 。
C语言的语言本身很容易“精通”,一旦你理解了指针、函数指针等问题,基本知识方面就横行无阻了,很少会遇到完全没见过的语法 。
C语言基本学习过程真的没有太多好讲的,假设每天学习两小时,每周学习5天,只要动手多写例子,把例子保存好随时翻看,那么C语言的语法基础很快就能全部过完一遍,估计半个学期的时间就能看完 。
难点可能是在指针的使用,这需要多看资料、多画图、多写代码尝试,给自己点时间强行突破即可 。但是问题也在这里,由于宏和指针的存在,万事皆有可能 。
很多经典的C代码,真的是没见过之前根本不知道还能这么用,举个入门级的例子,Linux内核中的一个通用链表://定义链表节点结构{*next,*prev;};//创建链表#(name){ &(name),&(name)}#(name)=(name)//判断链表是否为空empty(*head){->next==head;}//运行时初始化链表#(ptr)do{(ptr)->next=(ptr);(ptr)->prev=(ptr);}while(0)//我自己写的测试函数,方便读者阅读:(){();("列表是否为空%d\n",(&));;}C语言写的经典代码经常会用这种“过度简洁”的语法,初学之后会看得云里雾里的 。
如果你能看懂,又会有一个更大的问题——这个结构体里面,没有数据 。自定义数据应该放在哪呢?这又需要深一步研究了 。
稍微高深点的比如任意动态语言的源码,比如Lua的源码,对于刚学懂了C语言的同学来说,真是每个字都懂,连在一起就不认识的感觉 。
还有一些经典算法,比如的源码,都很值得深入分析,只要理解一个模块,就会收获巨大 。
具体的例子这本书里提到好几个:
赏析一下书中前几个问题:第1章正则表达式匹配器第2章中的增量编辑器:像本体一样的接口第3章我编写过的最漂亮代码第4章查找可能是知识结构不足,本书后面的例子我读起来有点不清晰 。
对C语言学习者来说,前几个例子非常值得一读,可以迅速意识到自己的不足并迅速成长 。本书建议先找电子版试读 。PS:关于C语言开发环境1、平台,请使用Dev-C++ 。
不要用,对C语言支持不完整 。2、安装Linux虚拟机,桌面版本的,比如,现在貌似“深度Linux”挺火,没试过 。
三、关于进阶C语言的进阶会遇到两个主要问题:1、明白基础以后,缺少大量练习 。而大量练习本身会非常费时间,因为在顾及语法的同时要顾及逻辑问题,捉襟见肘 。
这时候的初学者,逻辑抽象能力和语法使用都是半吊子,非常难受 。2、阅读代码方面,C语言的成熟工程代码一般会比较冗长,函数中间夹杂着很多宏和指针操作,我阅读的感觉是读后面忘前面,非常难入手 。
如果不明白某个函数的功能,强行将其读懂非常费时费力,容易放弃 。这样一来,学完基本知识之后的进阶之路真的非常陡峭 。
我个人大胆给出C语言进阶的一个相对缓和的路线:1、实现链表、可变长数组、哈希表等基本数据结构,实现方便的结构体 。然后大胆的用在自己写的程序中 。不要怕写的有BUG,也不要怕效率不高 。
现代编程中容器是非常关键的武器,没有容器寸步难行 。而编写容器时会练到封装、指针、内存分配,都是C语言进阶时极其重要的方面 。