找回密码

碧海潮声大学生网

查看: 858|回复: 4
打印 上一主题 下一主题

〖分享〗想学好C的朋友进来下

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-25 02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
籍本人两年的实际开发中的经验向大家介绍下C这门语言在学习需要注意的地方,有人说C容易是因为它的灵活,有人说C难学也是因为它的灵活,C太活了,怎么写都不会出错,记得在学C之前学的是Delphi和VB,前者号称是面向对象的Pascal 而后者是基于对象而且是一种所见得所得的设计者模式,对于初学者而言不免会有喜出忘外的感觉,我觉得喜欢写程序培养兴趣是有很大的裨益的,个人认为学程序何不从VB/Delphi这样的快速开发可视化的软件入手呢?等有对编程产生了兴趣之后再来学习C/C++我觉得你的收获会更大.
      好了说了这么多入正题,既然学习C,因为的是他的执行效能高,可直接操作内存,非常灵活,给程序员以及大的发展空间,受硬件环境的影响极小,这也正是很多嵌入式开发平台选用C是一样的道理,那怎么学习C呢?还是找本书照本宣科的从头学吗?还写HelloWorld吗?我认为没有必要这样了,中国为什么这么落后,中国的教育为什么总是被各国所数落?中国的软件产业为什么发展这么缓慢?我觉得最根本的原因是学生不知道自己学的东西有什么用?能做什么?学习没有方向,没有目的,你学结构学算法,学排序,学遍历(即查找)这些算法,学链表,学结构体,这些数据结构为了什么? 有的学员有爆棚自信,认为我计算机学了四年什么东西我没做过,什么东西我没学过?但是为何到企业却处处碰壁呢?我觉得是心态没有摆正,你以为自己是大学生别人就应该说5k-6k的请你求你去?低去4K看都不看?但实际上软件开发是要有经验的,不是说理论知识就行了,你可以说你在学校里做过的几个项目,那能叫项目吗?没有需求没有分析,律千篇的都是XX管理系统,学生管理系统,学分管理系统,学星爷大话西游里的话:有点创意好不好,老兄.你说别人用人单位看到这样的简历或经历别人会用你吗?用MFC的架子做个学员还是老师管理系统这种东西别人用人单位看都不看直接扔的,因为特别是在中国像这样的行业软件几乎都是定制,就连东软金碟这样的CMM5的企业都不敢说自己卖的是产品型的软件.也就是说每个软件都有它自己的设计模式,不是说像MFC这样一开始就定好的框架,除非你自己玩下,还可以要不然这东西基本是没有用,如果说VC这块你要学习的话建议还是学下ATL即COM技术,这块必竟还是有做中间件的企业会需要的!总结了一下C中比较重要的内容,虽然也有朋友发表过类似的东西觉得比较乱的,自己理了下:
      一,基础部分:这里分两大块,一块就是数据结构,另一块是算法
      1.数据结构要看的是:基本的数据类型,int ,float,double, char ,指针;
       1)扩展数据类型struct,枚举,联合;用户数据定义数据结构:链表,数组.这里要掌握几种基本数据类型的用法!
       2)指针,及用指针来处理字符串,因为C里面没有字符串这种类型的变量,其实在其它语言里学习过字符串可能会有先入为主的观点,认为字符串也是一种基本的数据类型,而我告诉你其实不然,计算机的长度是32位,而中国的方块字一个个怎么可能把一串字符存储在一个单位里面而有别于另一个字符串?字符串在C里面是以字符串数组的形式所表现的,而在C中数组的传递实际指首地址的传递即指针的传递.而我们现在生活中所做的项目大部分时间是对字符串的处理,这部分你一定要掌握的非常的牢固!
      3.1)修饰符作用要分清:signed,unsigned ,long, short这几种是修饰基本数据类型的;
      3.2)作用域和生命周期这部分要了解:Static修饰的生命周期是全局的,function,scope只能限制它的作用域;  
      4)链表,而链表我就不多说了作为一种非线性存储的数据结构,正因为他的不连续性所以被广泛的应用于数据层的持久化上,一般而言在实际项目中也是使用的非常的广泛,建议多看看.
      5)堆与栈,程序出入栈运行的方式一定要熟练,这对你以后调试程序有很好的帮助.堆,没什么好说的,堆上的空间是动态的,正因为它的这一好处,也可能成为很多程序员的梦魇,记得malloc之后一定要free.注:这里不是简单的成双成对的问题,还是上面的知识,每种类型的生命周期和作用域一定要清楚,这里就不会有垃圾内存的问题了.
      2.算法,即有效的组织数据结构以最理想的方式运行,从而达到最佳的效果.
       1).这方面我觉得首先作为算法的基础,元素之间的运算一定要非常的熟练,要把算术优先级别做到倒背如流,当然有些人和你说这没什么用,你看这没用,等用到时你就等着哭吧.
       2).元素间的值传递也要有了解,引用还是直接传值一定要有清晰的思维,赋值也是一种值传递记住,左值和右值要分清.
       3).函数的学习,注意无类型指针void的用法,及它的两种含义和用法
       4).控制流:结构化程序还是面向对象的设计都必不可少的东西,一定要使用熟练,顺序就不说了,判断,循环里的常用语句烂熟于胸!
      3.对外部设备的调用,这写包含文件的操作,注意下就可以了.不必太在意,,其实输入/输出都是这个领域的一些东西,没必要去在意那些什么printf/scanf 之类的没什么用,自己测试代码可以用下,其它的地方就没必要的...呵呵
[s:69]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
2#
发表于 2006-9-25 07:27 | 只看该作者
偶喜欢 VB````````````嘎嘎
3#
发表于 2006-9-25 12:16 | 只看该作者
引用第1楼海院の水水2006-09-25 07:27发表的“”:
偶喜欢 VB````````````嘎嘎
喜欢C因为自由。超不喜欢对象,集合,方法,事件。记的头都痛了。这也是我喜欢PHP的原因(类可以自己写),这也是我到现在什么都写不出来的原因。
苦闷啊。决定不研究了,搞好自己的专业然后试试能不能考研,至于计算机业余爱好~~
[s:41]  [s:41]  [s:41]  [s:41]
4#
发表于 2006-9-25 13:46 | 只看该作者
难道有什么语言的类不能自己写吗?不喜欢对象,怎么还要用类? [s:65]
5#
发表于 2006-9-27 10:10 | 只看该作者
其实这些语言都是有自己的一些语法不同而以!!
主要的还是靠算法的思想!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋| 碧海潮声大学生网  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 浙ICP备11026473号 )

快速回复 返回顶部 返回列表