回 帖 发 新 帖 刷新版面

主题:[求助]求助



    我觉得现在我对C语言的语法基本了解,想进一步学习,不知道从哪方面开始。
是先学数据结构(目前只学了队列,栈,列表),还是其他。。。。希望高手给建议。

回复列表 (共10个回复)

沙发

数据结构其实非常简单,基本就那些东西,如果不是应试,那了解了解就可以了,特别是其中的算法分析作用不太明显可以不看。

至于其他嘛,建议可以多搞一些自己以后想做的方向的程序,如果还不清楚方向,那就去SourceForge.net看看有没有感兴趣的项目:)

你的C不错,但别像我当年着的道,C越娴熟转C++越难(程序容易转,思想转变难)。但凡事都有两面性,当你过了这个C TO C++的坎后,你会发现在很多地方都会胜人一筹:)

个人建议现在您可以边做东西(啥都行)边看看E* C/C++系列的书:)

板凳

楼上说得不错。前一段时间我也试着看过关于C++方面的书,看到类那一部分,感到特别别扭,觉得那些类方法总是感觉怪怪的,还不如直接写函数舒服。有没有比较好的方法 过C TO C++ 这个坎?

3 楼

你可以写一个俄罗斯方块,对你的编程能力进行下检验以及对以前的知识进行一个总的复习

4 楼

 

5 楼

C to C++最好的方法就是忘掉C的一切
从新审视程序的逻辑,把构建算法的最小逻辑元重新定义为对象

6 楼

[quote]楼上说得不错。前一段时间我也试着看过关于C++方面的书,看到类那一部分,感到特别别扭,觉得那些类方法总是感觉怪怪的,还不如直接写函数舒服。有没有比较好的方法 过C TO C++ 这个坎?[/quote]
以下是个人经验,仅供参考,不过感觉咱俩有一定的共同之处,所以没准儿派得上用场:)
其实从C到C++难的不是语法也不是技巧,而是思想!
一、
C往往是以代码为中心的,也就是说:写程序时是代码的流程占核心,数据的变化只是为了从一个流程到另一个流程;
而C++则是以数据为中心的,也就是说:写程序时是以数据流为核心,代码的不同只是为了数据从一个状态变成另一个状态;
二、
C的struct及对于此struct的操作的函数的总合可以看作是类的原始状态:)
三、
C喜欢以大而全功能的函数包揽一切操作——因种种原因,确实不好拆;
C++用继承、多态等概念实现代码的分散。
四、
C++中的虚函数,其实就是C里的函数指针;
如果一个C++类里有很多虚函数,则相当于C的struct里有一个函数指针数组。

7 楼

孩子闹了,先写这些:)
此贴不知可否申精,大家一起补充一下C to C++:)

8 楼

五、
泛型并不等于C++,它只是C++模板的一个分支领域,故不要以为把printf改成了cout,把scanf改成了cin就是C++程序了,我们应该辩证的对待输入输出流。
六、
代码的优美在于简单,这是我一朋友经常说起的。这一点与C是一样的,不过“简单”并不意味着代码短小,而是易于维护。使用C++时,在不注重效率的地方,你大可使用虚函数、继承等手法实现多态,对于C来说,就是把一个函数时针,在不同的时候指向不同的函数,从而实现相同代码产生不同的功效:)
七、
少用多重继承,这个东西听起来很美,你可以有多个父亲,这样你就可以把他们所有“优点”都继承了。
但我们不得不承认:你也同时继承了很多“缺点”。
八、
少用虚继承,它不可避免地使用了多级指针,如果与多重继承混合,还有可能在后期维护中产生“低能”的“病秧子”。
九、
少用操作符重载,虽然它可以使得你的程序看起来很炫,但出了错也会很“陷”。
十、
少用的功能不等于不用,更不等于不需要理解!有时它可能是必须的选择!正如goto一样!

9 楼

先谢谢 cgl_lgs 的非常精彩的建议。

我发现很多更基本的东西还没懂,像if语句和switch语句它们在实现上的差别。我感觉没有像他们学计算机专业的人那样有精力去学C++。当初学C语言时只是出与对它的兴趣,现在也是很感兴趣!!在学C++以前我想先学学汇编。可能那时侯学起来轻松一点吧。

10 楼

花这么多时间在基础语句的实现上,除非你从一开始就打算做底层代码,否则这些深入的基础研究将占用你极为大量的时间和精力,而带来的程序设计能力本身的提高则显得非常有限。个人还是建议如果想转向C++,那么应该暂时放下对每个语句的实现的具体探讨,而转向对程序设计这件事本身的思维过程的深入思考和研究
6楼的(一)是一种参考思路,但是更多的区别还有待你去深入思考。

我来回复

您尚未登录,请登录后再回复。点此登录或注册