C语言

早在20世纪80年代,C语言就已经成为小型计算机(UNIX系统)使用的主流语言。从那以后,C语言的应用范围扩展到微型机(个人计算机)和大型机(庞然大物)。如图1.2所示,许多软件公司都用C语言来开发文字处理程序、电子表格、编译器和其他产品,因为用C语言编写的程序紧凑而高效。更重要的是,C程序很方便修改,而且移植到新型号的计算机中也没什么问题。

图1.2 C语言的应用范围

无论是软件公司、经验丰富的C程序员,还是其他用户,都能从C语言中受益。越来越多的计算机用户已转而求助C语言解决一些安全问题。不一定非得是计算机专家也能使用C语言。

20世纪90年代,许多软件公司开始改用C++来开发大型的编程项目。C++在C语言的基础上嫁接了面向对象编程工具(面向对象编程是一门哲学,它通过对语言建模来适应问题,而不是对问题建模以适应语言)。C++几乎是C的超集,这意味着任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

虽然这些年来C++和JAVA非常流行,但是C语言仍是软件业中的核心技能。在最想具备的技能中,C语言通常位居前十。特别是,C语言已成为嵌入式系统编程的流行语言。也就是说,越来越多的汽车、照相机、DVD播放机和其他现代化设备的微处理器都用C语言进行编程。除此之外,C语言还从长期被FORTRAN独占的科学编程领域分得一杯羹。最终,作为开发操作系统的卓越语言,C在Linux开发中扮演着极其重要的角色。因此,在进入21世纪的第2个10年中,C语言仍然保持着强劲的势头。

简而言之,C语言是最重要的编程语言之一,将来也是如此。如果你想拿下一份编程的工作,被问到是否会C语言时,最好回答“是”。

自学C语言书推荐

经典入门书C Primer Plus(第6版)中文版

本书采用以下写作策略。

  • 在介绍C语言细节的同时,讲解编程概念。本书假定读者为非专业的程序员。
  • 每次尽量用短小简单的示例演示一两个概念,学以致用是最有效的学习方式之一。
  • 当概念用文字较难解释时,则用图表演示以帮助读者理解。
  • C语言的主要特性总结在方框中,便于查找和复习。
  • 每章末尾设有复习题和编程练习,帮助读者测试和加深对C语言的理解。

为了获得最佳的学习效果,学习本书时,读者应尽量扮演一个积极的角色。不仅要仔细阅读程序示例,还要亲自动手录入程序并运行。C是一种可移植性很高的语言,但有时在你的系统中运行的结果和在我们的系统中运行的结果不同。经常改动程序的某些部分,运行后看看有什么效果。偶尔出现警告也不必理会,主要是看一下执行错误操作会出现什么状况。在学习的过程中应该多提出问题和多练习。用得越多,学的知识就越牢固。

C++

C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。

使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。所以,如果已经对C有所了解,便可以学习C++了,但这并不仅仅是学习更多的关键字和结构,从C过渡到C++的学习量就像从头学习C语言一样大。另外,如果先掌握了C语言,则在过渡到C++时,必须摒弃一些编程习惯。如果不了解C语言,则学习C++时需要掌握C语言的知识、OOP知识以及泛型编程知识,但无需摒弃任何编程习惯。如果您认为学习C++可能需要扩展思维,这就对了。

自学C语言书籍推荐:

经典入门书:C++ Primer Plus(第6版)中文版

本书通过传授C语言基础知识和C++新增的内容,带您步入C++的世界,因此不要求读者具备C语言知识。首先学习C++与C语言共有的一些特性。即使已经了解C语言,也会发现阅读本书的这一部分是一次很好的复习。另外,本章还介绍了一些对后面的学习十分重要的概念,指出了C++和C之间的区别。在牢固地掌握了C语言的基础知识后,就可以在此基础上学习C++方面的知识了。那时将学习对象和类以及C++是如何实现它们的,另外还将学习模板。

本书不是完整的C++参考手册,不会探索该语言的每个细节,但将介绍所有的重要特性,包括模板、异常和名称空间等。

初级教程方法

大约20年前,C Primer Plus开创了优良的初级教程传统,本书建立在这样的基础之上,吸收了其中很多成功的理念。

  • 初级教程应当是友好的、便于使用的指南。
  • 初级教程不要求您已经熟悉相关的编程概念。
  • 初级教程强调的是动手学习,通过简短、容易输入的示例阐述一两个概念。
  • 初级教程用示意图来解释概念。
  • 初级教程提供问题和练习来检验您对知识的理解,从而适于自学或课堂教学。

基于上述理念,本书帮助您理解这种用途广泛的语言,并学习如何使用它。

  • 对何时使用某些特性,例如何时使用公共继承来建立is-a关系,提供了概念方面的指导。
  • 阐释了常用的C++编程理念和技术。
  • 提供了大量的附注,如提示、警告、注意等。

本书的作者和编辑尽最大的努力使本书简单、明了、生动有趣。我们的目标是,您阅读本书后,能够编写出可靠、高效的程序,并且觉得这是一种享受。

自学C语言和C++,有什么好书推荐?相关推荐

  1. r语言和python-r语言和python的详细对比

    r语言和python的对比,两者各有千秋,究竟要学哪一个,可根据自己的实际需求来作出选择,当然,最好是两者都学. 01 开发目的 R语言 R是由统计学家开发的,它的出生就肩负着统计分析.绘图.数据挖掘 ...

  2. 零基础学编程,如何区分C语言和Java?我们到底如何怎么进行选择!

    C语言和 Java的主要区别:面向过程/面向对象.编译型/混合型.不同的应用场景.只要阅读二者的入门资料就清楚了. 时间足够的话,先学C再学Java:时间不够直接上 Java. 一个合格的程序员当然是 ...

  3. c语言和java哪个有前途_C语言和Java哪个更适合初学者?

    目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...

  4. 学C语言和C++它有毛关系吗?

    这是最近一周时间几个读者小伙伴所提的问题,我顺手截了两个图. 实不相瞒,这类问题之前也经常看到,但是我忘了截图了. 每次遇到这种问题,看起来很简单,但是打字一时半会还真说不清,想想今天周末了,写一篇文 ...

  5. 200G超强C语言和C++编程0基础从入门到精通视频教程,立即获取

    当今只有一种语言的性能比C语言强,那就是汇编语言,优化过的C程序的速度大约是汇编的95%-98%.但汇编基本不是常人用的.所以实际上C就是最快的语言.C是面向过程的编程语言,C++在某种意义上来说是C ...

  6. 为什么说C语言和linux是分不开的?

    为什么说C语言和linux是分不开的? 在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言 ...

  7. 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?

    硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...

  8. 多语言互通:谷歌发布实体检索模型,涵盖超过100种语言和2000万个实体

    来源:新智元 本文约1500字,建议阅读5分钟 实体链接(Entity linking)通常在自然语言理解和知识图谱中起着关键作用.谷歌AI研究人员近期提出了一种新的技术,在这种技术中,可以将特定语言 ...

  9. 如何混合编译C语言和C++

    如何混合编译C语言和C++ 实际开发过程中,C++中会调用C与语言编写的代码,我在网络上面找到一篇写得很好的文章 http://blog.csdn.net/keensword/article/deta ...

  10. c bool 类型检查_C语言和C+的区别是什么?8个点通俗易懂的告诉你!

    有些初学的同学傻傻分不清其中的区别,下面我将详细的讲解C语言和C++的区别点帮助大家尽快的理解.(但是呢,C语言和C++可是有着密不可分的关系哦,一般学习其中一种都会需要学习另一种!) 1.关键字 蓝 ...

最新文章

  1. R语言|又来一个气泡图
  2. Apache配置--用户认证(针对目录访问)-update2015-05-02
  3. getAttribute与getParameter区别
  4. CTFshow php特性 web125
  5. PostgreSQL SystemTap on Linux 转
  6. 计算机专业的学生如何为国防建设做贡献,大学生如何为国防建设做贡献?
  7. 东师计算机应用基础在线作业,东师《计算机应用基础》15春在线作业1答案
  8. 用solidity语言开发代币智能合约
  9. 华硕笔记本电池软件_华硕灵耀X逍遥测评:11代酷睿处理器加持,王者归来
  10. 基于visual Studio2013解决面试题之0909移动星号
  11. 关于MDI窗体的那些问题
  12. 【Flutter】微信项目实战【03】我的界面搭建(下)
  13. 一个Maven工程中,不同的模块需要不同的JDK进行编译的解决方案
  14. 数字签名工具signtool
  15. 医院医疗类报表免费用,提反馈,还能赢取P30!
  16. “程序员年薪50万到底有多累、多辛苦?”,句句扎心
  17. 百度收录批量查询-免费百度整站批量收录查询工具
  18. 三菱Fx系列PLC的编程口协议
  19. vscan Ineligible for use by VSAN
  20. Bootstrap导航栏示例

热门文章

  1. Java并发练习:无锁编程
  2. Hexo+阿里云服务器搭建属于自己的博客
  3. Proxmark3系列教程1——PM3用法
  4. 什么是P2P和它的应用
  5. 刷题——逆波兰表达式
  6. Html点击复制文本内容
  7. dtcms分页含多个参数,多个参数分页
  8. 北京服务器机房位置,北京服务器机房
  9. 苹果微信默认字体样式
  10. 【Linux网络配置】