C语言不利于初学者的原因竟然是这
虽然很多人都说C语言如何如何的强大,学了C语言再学其他编程语言超级容易,但是有一些实际情况,我们还是要对初学者说说,毕竟学习编程的是我们自己,只有我们自己才知道是否适合一开始就学C语言。
指针概念的多样化和复杂化
指针可以说是C语言的灵魂,可以用指针来实现很多高级的功能,比如实现类似于高级语言的引用参数传递、各种数据类型的高级数组等,由于指针和内存地址息息相关,但是对于初学者来说,很多关系理解起来就非常费劲了,比如取地址运算符和指针运算符、变量的指针和指向变量的指针变量、数组的指针和指向数组的指针变量等等的概念理解,都够我们理解一段时间了。
链表
很多C语言书籍都会用一节或者多节内容来介绍链表,链表作为数据结构里面重要的一部分,因为链表的非连续、非顺序特点,使它能够实现很多有用的功能,比如让插入和删除非常方便,而插入和删除也是我们使用数据库的时候经常做的事情,虽然链表是那么的完美并具有诱惑性,但是由于指针的引入,让链表的学习成本成指数级增长。
手动的垃圾回收
学过Java、JavaScript和PHP、Python的人都知道,这些上层的编程语言都提供了对内存的自动管理,分配的内存不需要显式的释放,而是由异步的垃圾收集程序来处理,这样可以让程序员不用再为内存的管理而头疼,但是反观C语言,我们手动分配(calloc或malloc)的内存,使用完之后,必须手动释放掉(free),如果一旦不释放就会导致程序崩溃或者内存溢出等不可预知错误。
学完感觉像没有学一样
这个或许是一个致命的原因,对于很多学习C语言的人,即使C语言学完了,但是发现要想用C语言做一个像样的项目是非常的繁琐和困难,但是为什么很多计算机专业刚刚开始都是以C语言为编程基础呢?这是因为计算机专业后面的很多专业课程,比如操作系统原理,数据结构等都是需要C语言基础的,也就是说,刚刚开始学的C语言,需要后面的多个专业课程实践才能够彻底有机会领会到C语言的强大。
不管怎么样,我们不得不承认C语言的强大,还是建议大家找时间学习学习,但是不太建议初学者,尤其是非计算机专业的人,一开始就学习C语言,因为这样很容易造成挫折和失落,从而放弃编程这条路,对于初学者,可以参考自学编程不再是梦一文进行自学编程。