事实上,在我看来C语言并不适合做入门语言,国外其实也有很多学校把入门语言设为java。但是,C语言对我来说算是真正意义上的第一语言,我只能从用C语言入门来讨论意义,否则就是乱说。
我查了一下,C语言的应用主要方面有:理论研究(算法方面),操作系统,硬件编程(几乎所有嵌入式)。别的我基本都没搜索到。
这其实对很多人失去了意义,因为学习C语言对于后来从事的完全没有关系。在我看来吧,C语言练得是内功。一是编程内功,一是语言的内功。如果用有没有用来衡量就没意思了。
C语言并不适合作为入门语言,但为什么教材还是要先用C语言来入门编程呢?原因只有一个,C语言出现得太早,它太基础,也太广泛。现在绝大多数编程语言框架都能看到C语言的影子。但也因为它太基础太底层的原因,导致C语言易懂难精。所以,我们需要在编程内功上下功夫提升自己。
编程内功衡量的是用编程来解决问题的能力,C语言拥有的库真的不多,也就是说需要不断的自己去编写一些奇怪的代码,在这些编写的过程中,不断得提炼自己的想法,思维,久而久之,这种能力才会随之提高。这并不是说别的语言不行,只是我觉得这种接近底层的语言的训练强度会大很多,毕竟你写个数据结构出来往往都要接近100行了。
语言的内功,这一点我也是前一阵子感觉到的,因为什么呢,直接拿例子出来吧,自己体会。
程序目的是处理n个元素的数组,不处理第k个元素。
我的代码:
for(int i=0;I <k-1;i++)
statement;
for(inti=k;i<n;i++)
statement
bettercode:
for(inti=0;i<n;i++)
if(i==k-1)
continue;
else
statement;
后面那段好当然不是因为效率,效率不如第一个。
好在对语言的使用上,之前写过很多类似第一种的代码,但是从来没有考虑到continue过,而continue其实是比较少用(或说我比较少)的改变循环过程的语句,使用的这种写法在我看来真的算是语言内功非常深厚的。
前面说过C语言不是用来速成的原因就是这里。用速成的方式去学一门内功心法是容易出事的。曾经老师对我们说C语言将是你们毕业都不敢说掌握了的语言。的确是的。
C语言要的就是练就这两种内功,前者帮助你能脱离语言桎梏用脑子去编程,后者则是帮你驾驭计算机,是语言真正成为你的工具。别的语言一样都能练,但是吧,在我看来C语言的强度大太多。
最后推荐一个一起学习的地方:七一零,五二零,三八一,邀请码:柳猫,一起来学C语言

网友评论