现如今面向对象语言方兴未艾,脚本语言又来势汹汹。和Java和Python这些年纪尚轻的新语言比较起来,C语言绝对是老前辈了。我们都知道C语言诞生在上个世纪六七十年代,而且它不像C++或者Java那样面向对象,它是一种面向过程的的语言。于是很多人开始怀疑,学习C语言还有用吗?

一般大学里绝大多数理工科专业都开设C语言课程。C语言是中国计算机等级考试的一门考试科目,就是冲着通过那个考试很多人也难以避免要和C亲密接触一下了。但是,抛开应付考试这种功利的想法来看的话,C到底还有没有市场呢?答案非常显然。C非常非常重要,国外某些机构每月/季度/年,都会发布全球计算机语言排行榜。各大榜单上,C语言一直处在傲视全雄的位置。任后来语言来势汹涌,依然难以撼动C的地位。C之所以这么强大,尽管它缺乏面向对象的许多特性,但它的优势也无法被取代。例如,C的高效性,对底层的控制能力等等。如果你认真的学习了C,并掌握了它的精髓,你会对此越发透彻的认识。

对于很多C的初学者来说C其实并不好学。因为它与底层之间的密切联系,使他在某些地方更接近机器的思维方式,而非人的。所以向指针这种东西就成了C的一个难点。另外,C特别灵活,它总是优先默认程序员们总是对的,所以它在语法要求上相对宽松。这对功力不足的人来说是非常危险的,某些将会导致系统崩溃的错误可能就潜藏于此。那我们该如何去学好C呢?其实学习任何一门计算机语言,大体上需要注意的地方都是差不多的,比如认认真真地看书,多上机实践等等。那么这里关于共性的问题我们就不多谈了,来说些有特性的部分吧。

真正要将C的优势发挥到极致,必须要加深对计算机的理解,因为C与底层联系紧密,所以你要对计算机内存、缓存、数据编码和表示等许多细节了如指掌,不然的话一些稍有点深度的代码就会让你满头雾水。好了,我们举一个简单的例子,请同学们看下面这段程序,你看明白下面这段程序的执行目的了吗?

如果看不懂,可以在计算机上运行一下,没错,你会惊异的发现,这段程序的运行结果就是输出语句“a=5;”在内存中的“机器码”。这非常微妙,因为指针赋予C访问内存的能力,我们才能从中获取机器码01序列。当然这段程序的运行需要条件,开发环境变化之后0040D788也可能会变化(这个地址仅仅是在我的计算机上实验的结果),更多有深度的代码都还在计算机里睡大觉呢。

另外,读书是必须的。一本好书可以引导你尽快学到真本事,可以让你避免误入歧途。但是书太多了,我们太容易烟花缭乱了。我们最多看到的C语言书籍是谭浩强的《C程序设计》,现在应该出到了第3版,发行量据说超过1000万册(因为很多大学选用它当教材)。从我上学的时候,学校里就已经在用这本书了。这本书帮你过计算机二级应该是够了,但是要学到真本事,这本书就太初级了。所以我个人并不推荐使用这本书。当然如果你的专业不是学计算机相关方向的,这本书应该比较适合你。而我这里谈的应该是面对科班学生的。C语言详解(第5版),美国Jeri R.Hanly和Elliot B.Koffman 编写。这是一本畅销世界的经典教材,内容详实、选例精当。但是这本书主要是面向在UNIX或LINUX下编写C程序的读者的,所以有些系统调用,对于中国学生不是非常容易接受。所以给学习带来了一定的难度。相对而言,Kernighan和Ritchie编写的c程序设计语言则更适合中国学生阅读,这也是一本享誉世界的经典C语言书籍,有兴趣的读者不妨看下。

我和李召恒老师也联合编写出版了一本C语言书籍《C语言参悟之旅》,这本书对读者的层级要求比较宽松,初学者和有一定C基础的读者都可以从书中得到提高。本书几经锤炼,在完稿之际业内八位知名专家联合推荐,其中中国航空工业西安航空计算技术研究所原总工程师、陕西省软件行业协会常务理事、西北工业大学博士生导师吴广茂研究员欣然为本书作序推荐。相信这本书可以成为同学们学习C语言时的一本非常不错的参考书。另外,作为提高和拓展阅读,林锐和韩永泉编写的《高质量程序设计——C/C++语言》将是非常不错的选择,这是国人编写的少见的非常优秀的计算机图书。

希望每位同学都能学好C语言,更欢迎各位同学针对C学习过程中的遇到的问题和感想同我交流。当然,直接把学校布置的编程作业丢给大本营老师的方式,我并不推荐。少数个别同学会在留言板上贴一大段的C程序编程题,然后直接希望大本营的老师帮他完成作业。希望大家能够多动脑,多动手,更珍惜与大本营中各位老师交流的宝贵机会。中山先生给中山大学留下的校训中,就有“慎思、审问”一条,我相信“会提问”本身也是一个人个人素养的体现。

============================================

向同学们推荐我编写的一本学习数据结构与算法的不错的书《C++数据结构原理与经典问题求解》http://product.dangdang.com/product.aspx?product_id=20385620

如果你想同我交流,欢迎点击链接http://student.csdn.net/invite.php?u=113322&c=a139a65a1494291d

1111111111相关推荐

  1. 控制台:Console输出永远都是之前System.out.println(你好我是渣渣辉1111111111);

    问题描述 ,今天遇到一个很撒比的问题,如图所示 我在类里面,输入的,永远都是之前,System.out.println("你好我是渣渣辉1111111111"); 的注释,怎么cl ...

  2. 期末1111111111

    数科1991 庄泽华 文章目录 数科1991 庄泽华 1.集群环境配置 超级用户与普通用户的区别 免密使用root权限执行命令 修改主机名 关闭防火墙 配置主机IP映射 2.搭建Hadoop集群 配置 ...

  3. linux 使用sendmail发送邮件

    1111111111 转载于:https://www.cnblogs.com/We612/p/11274139.html

  4. Mycat分片规则详解

    1.分片枚举 通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则,配置如下: <tab ...

  5. 封装 localStorage 缓存,兼容网页,微信小程序,uni-app

    封装的缓存功能,兼容网页,微信小程序,uni-app 使用,支持设置缓存,获取缓存,移除缓存,清空缓存,设置缓存时间,分组缓存设置. 把最下面的 Str4.js 代码拷贝到项目内可以直接使用,调用方式 ...

  6. 别再乱打日志了,这样才是定位 bug 打日志的方式!

    欢迎关注方志朋的博客,回复"666"获面试宝典 概述 日常工作中,程序员需要经常处理线上的各种大小故障,如果业务代码没打印日志或者日志打印的不好,会极大的加大了定位问题的难度,使得 ...

  7. 某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...

  8. 混合精度训练原理总结

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨ZOMI酱@知乎(已授权) 来源丨https://zhuanl ...

  9. Codeforces Round #658 (Div. 2)部分题解

    文章目录 A - Common Subsequence B - Sequential Nim C1 - Prefix Flip (Easy Version) C2 - Prefix Flip (Har ...

  10. Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...

最新文章

  1. 两次include一个文件的问题
  2. GitHub 项目 增加成员
  3. java 获取资源,Java资源获取
  4. python环境下neo4j的安装与使用
  5. 高通8X25Q wifi BT 调试文档
  6. Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
  7. failed to allocate 192.19M (201523200 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory
  8. 国土空间规划中工作底图如何制作
  9. c语言strTrimed函数用法介绍,linux type命令用法_转
  10. CPU 和 GPU 的区别
  11. 10行代码带你入门Windows编程
  12. 游戏音效的发展和制作游戏音效的意义
  13. 电气专业需要考什么计算机证书吗,电气自动化专业可以考什么证书
  14. 马斯克 的 2500 吨 推力 的 大火箭 没什么 了不起
  15. GStreamer应用开发文档的ogg播放器
  16. 华为应聘进展状态码解析(附加性格测试攻略)
  17. Cloudera Manager5.15.0安装教程,每步附图,超详细
  18. 太空大战2d游戏制作
  19. nginx: [error] OpenEvent(“Global\ngx_reload_7652“) failed (2: The system cannot find the file specif
  20. 共享单车公司每年花上亿元赎车

热门文章

  1. 致电电信索要公网ip地址,如何判断自己属于公网ip地址
  2. android手机通过wifi控制数码管,淫技:android无屏操作之adb操控wifi
  3. tumblr_如何在WordPress中添加Tumblr共享按钮
  4. Python实现久坐提醒小助手程序
  5. Excel文件怎样加密?这两种方法值得收藏!
  6. oracle的floor用法,oracle ceil floor 函数的用法
  7. 中证500-小盘股预警2015.4.2
  8. 人人都可以成为记忆高手--罗马室记忆法则
  9. be idle sometimes to_英语美文_双语美文:趁着年轻做自己想做的事_沪江英语
  10. 爱你却不能长相厮守痛楚等你殊不知道终局