C语言给初学者的学习感觉比较难易把控,特别是莫名其妙的指针错误,更是措手不及。引入N多的库才实现比如图形设计,甚是麻烦。所以很多人“躲过”C语言的学习,直接去学上层语言,如:PHP,js,JAVA。
但是最后会发现,事情并没有预想中的那么好,很多东西出现的莫名其妙,难以理解......比如上层语言中的字符串就是很好的例子,很多很好的用法的出现虽然给使用者带来了方便,但是为什么会那么的出现?字符串到底是怎么来的?
这些问题却更加的神秘了,因此剩下的也就是背诵,一堆的背诵,加大了学习负担,降低了学习兴趣,陷入了一个个的苦恼之中。
所以,想躲,却躲不过。因为C语言学习是走进编程领域必备的一条路。
在大学时候开设C语言,可能“动机不纯”,并没有给你解释清楚为什么要学,或者解释了你当时没感觉也没印象。
学会C语言也不是期末的时候背诵几个考试题,也不是上级测试最后一个编程题,甚至拿到满分所能衡量的。那纯粹是为了拿学分,为了应付考试,离学会还有很大的距离。
学习C语言的意义:编程行业的必备学习基础。
虽然它引入N多的库可以用来开发比较复杂的图形程序,如:俄罗斯方块,如:操作数据库的界面,但是它的意义不在于开发图形界面。因为同样的功能,可能你要开发好多天,但是别人PS或者写几个js就可以超过你的效果,如:http://www.phpkhbd.com/sky.html 或者:http://www.phpkhbd.com/full_cyy.html 这样的效果当然不是用C语言去实现的,不是不能,是不应该,否则就类似答非所问、文不对题了。
做嵌入式界面,你在不断的引入各种各样的库,错误一大片可能还没出现效果,别人QT几下子弄的比你还漂亮很多。所以C语言的学习目的不在于开发出多么炫酷的效果。而在于给你看破编程的红尘,让你懂得上层语言中突如其来的那些使用应该能怎么来。
它虽然没有汇编语言那么详细明了的给你展示内存分配过程,如:main函数怎么被调起来的,函数调用过程中内存变化详情,中断处理过程的详细变化。但是它可以给你展示上层一点的概念如:为什么要有指针,为什么指针长相那样,字符串是怎么来的,链表是什么?
怎么就出现了链表?这些就对上层语言有很好的指导意义,可以让你在学上层语言的过程中不怎么学就会了。因为它基本上就是“还原原始”的使用方式。所以你使用起来比较麻烦和枯燥,比如:
char* p="ningcaichen";
当你p[0]='N';
的时候就会出错,就比上层语言用起来麻烦多了。但这并不能说明C语言原始就没有意义,相反很有学习和指导意义,它能告诉你字符串是怎么出来的。当你晓得了之后,你就知道上面原来是在常量区定义的字符集合,而指针是不能操作常量的,因此出错,那么上层语言是怎么做到p[0]的?
其实上层语言并没有违背这个规矩,而是重新申请地址,重新拷贝那些字符内容,因此就可以解决了。但是上层语言只是给你展示结果,隐藏了这些会错误的情况,所以就莫名其妙的出现了使用方便的字符串了。因此上层语言虽然好用,但是却更加神秘了。如果不理解,你剩下的也就只能是背诵了。背多了头就大...
学习C语言也不是说必须用C语言去找工作,而是方便学某一门需求广泛的上层语言,如:PHP。所以,学习和求职很多时候是两码事,一个有长远规划的编程爱好者,是会摒弃编程语言的门户之见,做到融会贯通,就像霍元甲统一武术界,在上海创办“精武门”...
客观规律就是这样,编程行业是一个融会贯通的行业,科技不分界限,要想在上层语言中有所建树,成为精英,最后还是要回头,落下的迟早是要补回来!
继续关注:C语言的学习方法
网友评论
🙄,现在自学java,