如何深入学习C语言?如果铁了心学C前一段时间想学C++,发现C++很强大,所以很兴奋,但过了一段时间,发现C++太
如何深入学习C语言?如果铁了心学C
前一段时间想学C++,发现C++很强大,所以很兴奋,但过了一段时间,发现C++太复杂。情绪低落了,没有了当初的兴奋。
感觉我要先理解C才好一点。没有人是C++的高手而不懂C吧?
我现在大二了,大一上学期开了C语言课程,学校用的乔林的书,谭浩强的书也搭配着用。当初我上机挺勤奋的,在同学中算是学的比较好的。最后机考满分(我们只有机考,无笔考)。
看完了林锐的《高质量C/C++编程》(书中关于c++部分没看,这本书很快就看完了)
现在在看《C语言深度解剖》感觉有的地方和林锐的书差不多,有些地方有不必要的纠结。
我现在想问的是怎样才能学好博大精深C语言?我单单指语言,是看完“四书五经”?代码几万行?
我也想写几万行代码啊,可是没什么让我写啊,又没有什么项目。纯C语言好像写不了什么应用程序?
感觉没有练手的机会。书上的题目,代码量通常不超过百行。
最后评价C语言学好的标准是什么?
其实我想把C和C++都学好。看论坛里C++高手也是C高手。
而java高手可以不知道C语言。
在校学生想精通C语言是不是很可笑?
[解决办法]
[解决办法]扎好基础
[解决办法]坚持下去
多动手写程序
有问题就上csdn
多看多想
关键是毅力,选择了就不要放弃
[解决办法]我也想知道
[解决办法]要是有机会用 C 语言编写单片机程序就知道他的强大了.
嘿嘿~~~~~俺也是初学. 我想只要不停的学, 不停的敲, 不停的问, 不停的想.
慢慢积累肯定能提高.向 CSDN 的大牛们学习.
加油!
[解决办法]还是要多看多些,很多开源的知名项目都是C写的呀。可以看看人家的代码。可以按兴趣爱好找相关开源项目。
[解决办法]熟悉基础语法->熟悉调试->提高代码质量->确定领域方向->深入领域学习(毕竟不同领域偏重点不同)
我个人见解
[解决办法]把眼光放宽一点,
国内的技术书籍就没一两本好的,
[解决办法]学好C语言对以后学习别的语言很有帮助。
[解决办法]看了基础了,就可以看文件,指针,Linux网络编程。很多很多……
[解决办法]我觉得应该是不停的练习,练呀练,想呀想...--->大牛?
[解决办法]看国外的书,英文版的
[解决办法]个人理解,深入学习C语言其实不是学C了,而是学习计算机,因为就C和系统最接近。
首先,你得选择一个平台,Windows,Linux皆可,个人推荐Linux,不解释。
其次,C的基本语法你得弄熟了,再就是指针,否则免谈。
接下来几个方向,其实是深入C最后都会去涉及的:
1、汇编,C代码映射到汇编代码是怎样的?
2、某一平台的API,这实际上是系统编程,包括进程,内存管理,线程,同步和通信,等等。
[解决办法]同样的新手,我打算搞嵌入式,c语言想精通那是经验的积累,像小学的时候造句,中学的时候写文章,但是想搞好的创作,还要有天赋!那部仅仅是语言的问题了!
[解决办法]C语言可以做很多事情的。
如果是上层应用程序的话,个人觉得别考虑C语言;
底层的话,C语言就跑不掉了,单片机、驱动等,现在楼主可以看看《实战linux编程精髓》,可以学到很多东西,然后慢慢地向驱动发展嘛。什么linux下的网络编程,web编程,多线程编程等,要学习的东西多的很哦
[解决办法][解决办法]建议楼主学习下linux,通过linux来学习c和C++,很多C语言的好书都是通过linux的Gcc来讲解的,
C语言有很多好书,比如C和指针,C语言深度解剖,还有专家编程等等。
如果基础好的话可以看深入理解计算机系统。
祝楼主好运
[解决办法]计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
[解决办法]
C语言通不通就看指针, 刚给学妹写的一段排序, 楼主也可以拿去玩玩.
C/C++ code#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_LEN 21static char str_array[10][MAX_LEN];static char* str_array_index[10];int qsort_compare(const void *left, const void *right){ const char *lstr = *(const char**)left; const char *rstr = *(const char**)right; return strcmp(lstr, rstr);}int main(){ for (int i = 0; i < 10; ++ i) { scanf("%s", str_array[i]); str_array_index[i] = str_array[i]; } qsort(str_array_index, 10, sizeof(char*), qsort_compare); for (int i = 0; i < 10; ++ i) { printf("%s\n", str_array_index[i]); } return 0;}
[解决办法]
[解决办法]
求解释!!
[解决办法]
靠,写了程序要解释啊,不然我们怎么懂的了啊
[解决办法]
去做项目,对你有用
[解决办法]
快速排序 qsort最后一个参数是自己写的回调函数
[解决办法]
[解决办法]
http://www.cnblogs.com/happyzhu/archive/2010/07/07/1772576.html
可以达到对从CPU本身到操作系统内核、到系统平台、到应用软件体系,到软件的具体工作都有着深层次的掌握,可以达到出神入化境界......
[解决办法]
嗯,求解。不知道要干什么鸟
[解决办法]
坦白说, 我很羡慕楼主这时光...
如果我能回到大二的时候找到那时候的自己的话, 我想我会给那时候的自己列书单, 好好的啃下一些经典.
贴个豆列书单给你. 上面的一些书我现在还在反复的看.
http://book.douban.com/doulist/46089/
想精通C很伟大,一点也不可笑. 这里重中之重的就是要推荐下:
C老爹的书<The C Programming Language>
外加一本 <深入理解计算机系统> (有中文第二版)
想知道自己什么水平? 很多途径...
测试数据结构和算法, 可以去Online OJ. 国内有PKU, ZJU, 国外有TopCoder, UVA..
解解上面的题, 代码量绝对可以远超书本后面的习题哦~
要练手? 找点感兴趣的开源项目呗, 找个图形库(SDL可以, 实在不行MFC也成), 手动做点小游戏也OK啊...
少年, 加油吧!!!
PS:
林锐的那本书我看过,怎么说呢... 感情很复杂
确实有很多要点讲解的很好,颇有<Effective C++>的风范(参考书目只参考了本"More Effective C++"让我很奇怪...),但也很多谬误(估计是当初写书的时候没好好研究过C++标准).还时不时出现个void main(), 囧.
对照书内的一些代码和那书的参考书目可以发现很多东西模棱两可的矛盾(尽管一版再版,但是还是没整好标准).
代码很疼(排版也很疼,国人书的通病,出版社及编辑不负责也是一个原因), 缩进也很疼. (我看的是第三版)
吐槽以上.
C++ 还是看 C++primer 和 TC++PL 吧.
[解决办法]
感觉精通C++的人不一定精通C,用了C++之后不会再想用C,我的感觉
C++有太多好用的基础设施了,例如类、模板等等
[解决办法]
[解决办法]
楼主才大一大二就有这想法很好 但是提高的最好方式我告诉你 有3点:
1.写代码
2.写代码
3.写代码
我这里说的不只是写普通的小练习代码 而是指能多写一些大的类似项目的那种代码 至少过千行的那种
[解决办法]
[解决办法]
[解决办法]
写有用的代码,写有用的代码,写有用的代码,要有人带最好不过了。
[解决办法]
学习C语言重在坚持,多敲,多想,多写,对于一个程序可能有好几种解决方法,重点在于自己结合自己所学习的能够提出不听解决方案,并且能够不断精简,多上机调试一些程序,学习作者的编程思想,我还买了一本c程序设计语言,这本书是非常经典的啊。里面的很多习题对自己的学习很有帮助。学习C语言就是重点在学习指针,指针学不会就等于没学会c语言。不断的在各大网站浏览对自己的学习有很大帮助的。csdn,51cto,这些网站多很好。
[解决办法]
开发个游戏吧,光看书效果不好!
[解决办法]
个人觉得你的C/C++ 语法已经入门了 赶紧做个项目吧。。实践最重要。
[解决办法]
[解决办法]
当初我也是和楼主一样想的,用c语言做个项目什么的,到时候找工作好找,但是确实没有什么纯C的项目适合学生。建议楼主学数据结构的时候实现书中每一个例子和习题,学习在linux下c语言编程,再练练acm,找工作就不用愁了。
[解决办法]
吃了称砣铁了心
[解决办法]
实践出真知啊! 光看理论是没有用地!不过也不是说不用看理论 !
[解决办法]
这个表示递归调用没学好
------解决方案--------------------
书籍很重要,搜“C语言 四书五经”,多写多交流,尝试使用C去解决现实生活学习中的问题,比如当时学工程数学我就自己尝试写了个处理矩阵的小程序,可以进行矩阵的四则运算和转制,写一些这些东西挺有成就感的,呵呵
[解决办法]
看书,写代码,再看书,再写代码,再看书,再写代码·······
[解决办法]
C语言还是应该好好学习的,这样才能更好的学习其它语言,我大学就认真学习了C语言,然后自己看了Java的书,工作时面试的Java,但是工作后做的工作都是C和C++的(因为部门缺人手),刚毕业时,工作也用功,也特别想学东西,一年也就这样做下来了,现在换工作了,做C++方向了
[解决办法]
[解决办法]
坚持下去。。。不要放弃。。。
[解决办法]
楼主啊。一个不懂c的java高手真的高不到哪里去,真的!!!
[解决办法]
看你以后想做什么了,移植、驱动?3D?数值计算?数据库?嵌入式?通用的、专用的...方向太多了,语言只是个工具,要吃这碗饭还得学其他的知识,软件从需求、设计、编码、调试、测试到升级维护各阶段都有好多东西要学,得做项目,多和老师和学长聊聊,看看有什么小活能练练手的。
[解决办法]
写个游戏吧
[解决办法]
去项目交易区.找个简单的项目.
再去考试学个工具.如JAVA,C#等等..
做项目时去提高自己.
光学不练没有用的.
[解决办法]
跟LZ有同样的疑惑
[解决办法]
[解决办法]
[解决办法]
能进实验室的都是高手。只有老师找高手进实验室,菜鸟没机会。ACM的每天做题,他们好像不关心语言本身。
[解决办法]
谁都有过这一步。
[解决办法]
直接写内核算了。
[解决办法]
[解决办法]
基础要打好 基础好了 将来学什么都快
[解决办法]
我觉得C++具有很多的优点,既具有C的深入内存,又有java的面向对象,能写大型的程序,所以C++还是很实用的
[解决办法]
C语言很简洁, 只是指针复杂了点. 掌握了也就那么回事. 其实C语言并不难, 难的是写出优美的代码.
[解决办法]
楼主可以暂时不看C的书了,
给楼主个建议
做个linux的shell,有基本功能就可以
国外大学基本都有这个作业
[解决办法]
"纯C语言好像写不了什么应用程序?"
天大的笑话啊。你可以把高等数学,线性代数,普通物理上面的公式用C都实现了。你就是最牛的人了。然后可以写游戏引擎,物理引擎,数值算法。矩阵代数。机器人,智能算法。等等等。
[解决办法]
别说找不到项目,比如你不用类库、不用基本控件,只用API,写一个记事本。呵呵,没多少人能写出来。
===============================================================
回复顺便招操作系统内核学徒。
招2人,有工资,学期6个月。
学习内容:
学习操作系统内核开发技术,也就是学习如何开发操作系统。在这里你将可以学到,
1、开机引导
2、进程管理,调度、切换
3、进程同步,信号量、互斥量
4、进程通信,消息、邮箱
5、设备管理模型,设备驱动模型
6、shell
7、内存管理
8、PC硬件编程
9、PE可执行文件格式
学完以后,以上内容全部都可以自己实现,也就是你自己开发出了一个小型的OS。
学成以后,系统底层对你不再是秘密,软件保护技术更是小菜一碟。
学成以后,你简历上的自我能力评价将多增加一条:能独立开发小型OS。如果面试官要求你拿出成果进行演示,那将更能展示出你的能力。
工作内容:
1、将所学技术写成文档。
2、维护网站。
要求基础:
1、具备汇编语言、C语言基础。
2、具备ASP基础。
3、具备一定的文字能力。
系统简介见:http://blog.csdn.net/robin97/article/details/6900190
学习版下载:http://download.csdn.net/detail/robin97/3699895
学习地点:
广西南宁
QQ:466914614 注明:学习内核。
[解决办法]
做ACM啊
[解决办法]
[解决办法]
勤奋,耐心很重要
[解决办法]
当初做完了c语言的课程设计后决定自己的c语言还不错,结果2年后的现在,要用的时候发现,差不多都忘光了
所有我觉得,要是真的感兴趣,就不要因为学习开课而学习,就应该自己有事没事的时候练习编程
[解决办法]
不要单纯地把语言当语言学,要结合具体应用
选择一个平台Windows 或者 Linux,会决定你的方向 !
个人推荐Linux , Windows 下基本见不到真正C语言的应用 (别提VC,那是C++)
所以, Linux C
[解决办法]
建议 买本 c于指针
把后面的习题,认真做一遍。
[解决办法]
C与asm(在于计算机系统的运行机制:栈,堆,内存.....)、算法、数据结构是紧密相关的,缺了哪一样,估计不能称之为高手。
[解决办法]
谢谢大家的回帖,相信这是很多人的疑惑!
[解决办法]
从我开始学MFC就木有把他当一个谋生的工具学,而是把他当一种思想学,这就是心态吧。。。
[解决办法]
语言只是个工具,不是技术的全部,打好基础,深入学学操作系统,计算机原理。然后再研究研究linux,在linux做一些常识,就是一个很好的尝试机会。
一个大学四年过了还不会c的211毕业学生,现在已经是个码农了,肺腑之言。。。
[解决办法]
[解决办法]
为什么要去纠结语言呢?
你可以锻炼自己的思维方式。
遇到问题,无论是程序问题,还是生活问题,用笔和纸记下,写出自己解决问题的过程,看看有没有什么不好的地方,有什么需要改善的。
编程的最终目的是解决问题。