大家好,今天小编关注到一个比较有意思的话题,就是关于c语言 技巧的问题,于是小编就整理了2个相关介绍c语言 技巧的解答,让我们一起看看吧。
应该怎样学习c语言?
本回答为作者(鹏鸟)原创,欢迎转发!
我是品机小屋的屋主“鹏鸟”,热衷回答有关C语言领域和家庭视听***领域的问题。
C语言是一门编程语言。从C语言入门,到在某个领域使用它解决问题,这个过程需要付出很多的努力。而且,学习C语言,并不是语法学好就行OK,还要用它来解决实际的问题,需要学习很多的其他知识。
正好有很多小伙伴在问,学习C语言有没有一个路线呢?在本回答我就来说说C语言的学习路线。当然了这也只是我的看法,小伙伴们有不同的看法可以在评论区留言讨论。
C语言学习路线图如下图所示:
这个阶段就是入C语言的门,学习C语言的历史、发展过程以及C语言的语法。语法也就那些个东西,像基本数据类型、程序控制结构、运算符、数组、指针、结构体、链表、文件、函数等等。比较有困惑的可能是指针、链表等。
看你的意思应该是已经学过一段时间了,至少c语言的语法基础你应该有了。这种时候要想找到写代码的感觉就只有多写了!去网上找找别人写的好代码,那开始研究研究,具体到每一句代码中,深入到每一个变量里面。这句话为什么这么写,判断条件这样写是为了什么。这个变量这样定义的原因,为什么***用结构体定义这个,不是每个变量分开定义,为什么这里用的是函数指针!就像这样的为什么有N个之多,你多弄明白几个,然后自己写代码,找几个例子项目,自己去写,写多了自然就找到感觉了,下次拿到一个东西该怎么写代码心中自然就有数了。写程序没有快捷的提高方式,只能多看多写多研究!
如果有没有基础的就先把基础搞明白,搞明白了就参考上面的方法,多写才能超越自己,不要想捡便宜,只有见的多了,你才能越来越牛逼!牛逼的程序员一般都已经数不清自己写了多少代码了!加油吧!
学好c语言,也可以很快的上手其他的编程语言。万变不离其宗的!祝你早日得道
我给你的一点儿建议:
1.换一本教材,不要用谭浩强的书,书里错误不少,而且会导致很恶劣的代码风格。
3.关键字没有几个,无非几个英文缩写。你也可以在以后的代码中使用汉语拼音,不过是个代码可读性的问题。英语很简单,真的很简单。
我在高中的时候接触编程,当时是为了参加信息学竞赛,我入门的语言是C语言。如果现在再让我选择一次,我可能会告诉初学者:可以选择Python。C语言有些地方对新手不够友好,语法繁琐,++、指针这些会让新手头大。
我入门的教材选择的是谭浩强的《C语言编程》,老先生是国内的元老,然鹅这本书真是错误很多,我在学习这本书的过程中挑出了20几个错误,直接导致我对C语言的好多特性模棱两可,例如指针的指针。后来,我看到了英文原版的C语言教程之后,就很少再翻中文书了。所以,建议英文还可以的朋友直接去看原版,再不济读个翻译版本也是可以的。
重点推荐Zed Shaw这一本,有实例并且带有详细的讲解,还有课后练习,既具有启发性又有实用性。这本书刚上来可能会让新手觉得略困难,但是坚持读下去,你会发现作者写的正是一个准程序员的学习之路。学好一门语言往往不止读一本书,所以多读几本。
学习C语言,光看书是不行的,更多的是练习,不断的练习,多思考,好多时候只是看书,感觉自己会了,等[_a***_]操作的时候却发现很多东西都不会,光看书是学不会的,动手才是硬道理,就像很多同学,各种视频资料下载了很多,硬盘都存满了,但是很少看,学习编程无捷径,多练习,把基础夯实咯,后面学习起来才更容易上手;
以前学习C语言的时候,看的是“ 如鹏网 ”的***教程——《C语言也能干大事》系列,挺有意思的,没想到C语言还可以这么学,通过开发超级玛丽,飞机大战,以及网站的开发来讲解C语言的知识点,挺有意思的
老师讲课的风格也挺好玩,挺逗的,听起来不枯燥,做出来的东西也蛮有成就感的,具体的可以到如鹏网***上去了解一下,有问题随时提问,老师实时在线答疑,口碑不错,课程体系的设置可以极大的激发对编程的兴趣。
还有后续的透彻的讲指针,以及用C语言来开发网站的课程
小编从事嵌入式C语言编程十余年,从三个层次谈谈如何学好C语言,贻笑大方。
1.初级阶段,目标是了解C语言,会用C语言。这个入门的初级阶段,很重要,它是技术大厦的根基,不应也不该随便完事。此阶段应注意:C语言,编码风格。
小编强烈推荐一本书:C primer plus。该书畅销30余年,知识覆盖面全,讲解简单,通俗易懂。
编码风格,可以参考一些大公司,如谷歌,华为等一些编码规范,亦可参考一些行业标准。
2.进阶阶段,
目标是熟悉C语言,用好C语言。这个阶段是拉开距离的阶段,务必把握好方向,踏实地努力学习。此阶段应注意:向经典学习,以C语言为中心扩散学习。
小编推荐一本书《程序员的自我修养-链接、装载和库》,主要介绍系统软件的运行机制和原理,涉及在windows和linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项。
小编建议至少研读一款嵌入式操作系统,推荐uC/OS-II(最新是ⅠⅠl版),uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。
学习嵌入式难吗,嵌入式学习路线有哪些?
学嵌入式有细分,包括单片机编程、Linux驱动编程、linux应用编程、Android应用编程等方向。首先需要明确往那个方面学习发展。
单片机学习路线
从单片机入门是比较好走的路,学习路线也很明确,从C语言开始打基础,51单片机到ARM内核单片机是最通常的做法,很多前辈都摸索出了不错的方法,网上教程很多。
- C语言多数大学大一时期就会教授,上手较容易,程序语法简单。对嵌入式比较关键的是学好运算符表达的含义尤其是位运算,还有函数封装使用,指针的应用,结构体等用户自定义结构的使用,链表其实在linux或Android平台等使用动态内存分配的场景较好用,ARM核的“低端”芯片中当然也会用,学习数据结构或程序编程思想中有较为重要的地位,实际开发依据需要再学习也可以。
- 51单片机,历史悠久,资料丰富。很多国内厂商会研发自己的51内核单片机,大同小异的操作方式,比较友好的是中文资料众多,厂商提供的绝大多数是中文文档。郭天祥的51教程比较经典,网上可以搜到。从51单片机可以说把单片机家族的多数外设都接触了一遍,是入门极好的途径。
- ARM内核单片机在国内应用场景众多,物联网中广泛使用,代表厂商有NXP,ST,还有Microchip、TI等有着不错DSP处理能力的芯片厂商提供不错的产品。从好入手出发,TI的MSP430系列和ST的M32或M8都是不错的选择,教程众多。这方面的单片机比51的外设和性能丰富了不止一点点
- 不论是51还是ARM内核单片机,一定要实践,看教程再多不如动手敲出来看现象,再思考。买有教程配套的开发板是最合适的,如上图这种开发板大把的。教程的实例可以直接对应开发板的IO引脚,让学习者更方便看实验结果。从现象出发看教程讲解,试着自己改动一些内容,看现象的变化再思考怎么发生的,这样参与感强,容易激励自己继续学下去。
- 一切的一切前提需要先学习C/C++语言,否则程序都无法看懂,别的不用扯~~
linux驱动学习路线
学linux驱动最好有单片机的外设和基本通信协议比如IIC、SPI等基础,需要会用linux操作系统,在系统中能进行linux命令行操作,学会在linux和Windows下交叉编译程序,这方面教程网上也有,相比单片机的教程就没有那么多比较系统的了。比较好的收费居多,毕竟难度也要上一个等级,氪金学习能接受的也OK。
- C语言基础同样是需要的,毕竟linux内核也是C写的,看不懂就啥也别说啦... 除了上一标题中提到的C需要掌握的内容,linux中还要继续深究其自带的API,包括文件IO的编程,进程线程的使用,信号量等同步机制的实现等等内容,这些在linux应用编程中同样重要。
- 还有linux下的shell命令常用的需要掌握,方便日后学习的进行。在linux操作系统中虽然也有windows一样的图形界面供使用,但在效率和专业性方面,还是命令行来得快~ 命令行界面稍显枯燥,但学习惯了打起来还是很爽的。
- 说完了操作系统方面的,就要看看linux内核驱动了。通常使用linux内核作为驱动的平台都是相对高端的产品,ARM7及以上等级的SOC中常见,这些芯片里跑linux或者后面说的Android系统进而能处理更加复杂的业务。那怎么把linux系统放进这样的芯片里并能在pc机上的linux操作系统中调试就需要学习了。这部分内容包括内核的编译裁剪与移植,根文件系统制作与挂载,交叉编译环境的搭建等等一众内容,需要极大的耐心去[_a1***_],下载到对应开发板再调试。
- SOC中拥有了linux系统就可以进行驱动的进一步学习了。这部分要学习三种字符设备驱动模型,等待队列,内核中断机制,poll&select机制,内核定时器和同步机制,IIC、input子系统等等内容,需要看着内核源码来修改编译,期间会涉及许多单片机知识,所以有基础的看源码也不至于太累而坚持不下去。
- 上面这些事情都一定一定要配合一个开发板来进行,如下图,这个不实操真的白谈。做完基本可以在自己的板子上完成类似单片机的所有操作,还能做出***播放效果,文件管理功能等,类似一台界面不那么好看的手机了。学习驱动主要在很多做高端产品的公司会需要人来移植系统到自己的平台上进行开发,工程比较复杂,当然待遇也不错。
还有两个学习路线放到下次回答,这次先说到这里啦,谢谢支持(#^.^#)
到此,以上就是小编对于c语言 技巧的问题就介绍到这了,希望介绍关于c语言 技巧的2点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/37174.html