C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
现在,还需要使用C语言的地方大概只限于下面3个领域:
(1)C语言仍然是编写操作系统的不二之选。它为操作系统而生,能更直接地与计算机底层打交道,精巧、灵活、高效。最重要的是操作系统的开发者都是最顶尖的程序员,他们有充足的能力和经验驾驭C语言。
(2)在对程序的运行效率有苛求的地方,如现在火爆的“云计算”领域,云平台作为基础架构,对性能的要求非常高,那么C语言就是首选了,因为C语言是目前执行效率最高的高级语言。
(3)在需要继承或维护已有C代码的地方,还需要C语言。有很多影响深远的软件和程序库最早都是用C语言开发的,所以还要继续应用C语言。但是,它们中的很多已经开始使用其他语言重写,那些C语言的代码早晚有一天会被抛弃。
因为学过C语言的人最多,熟悉C语言风格语法的人更多,所以C语言成为思想交流的首选媒介语言。例如,书籍里如果必须要出现程序,最常见的是C语言程序;在涉及编程能力考查的笔试、面试时,C语言通常都是必考的。
坦率地说,C语言应用面有些窄,市场的需求量也不大。不过因为真正能驾驭C语言的人数量很少,小于市场需求,所以程序员的薪水还是较高的。2017年中国软件开发者薪资大调查显示,最赚钱的4种编程语言是:Java、C++、Python、C语言。但对于并不想成为开发高手,或者兴趣不在底层开发的人来说,学它能有多大用处呢?如果单纯从“用不上”这个角度得出“学C语言没有用”的结论,是有失公允的。即便对计算机及相关专业而言,C语言的“用处”也不算大。学习C语言的意义并不在于使用它,而在于它可以让人们了解很多基本原理。
这里不妨根据未来的职业需求,把读者分为三类:
(1)不需要编程;(www.chuimin.cn)
(2)需要编程,但不使用C语言;
(3)需要编程,且要使用C语言。
对于第三类读者,不仅要好好学C语言,而且要精深地学。
对于第二类读者,学习C语言最大的好处是可以更直接地体会计算机最基本的工作模式和方式。换而言之,就是能了解一些计算机底层的原理。这是在其他高级语言中很难体会到的。这些原理虽然也不常直接用到,但它们潜移默化的影响是惊人的,总是能在关键时刻发挥作用。另一个好处是C语言很适合作为入门级语言。这并不是C语言自身决定的,而是中国庞大的C语言教育体系决定的。关于C语言的书籍、资料、论坛、习题和教辅资料等是最多的,而且无一例外都是面向程序设计的初学者。相比之下,其他语言的很多教材是假定读者已经有了一定的编程经验,不介绍或只简单介绍那些通用的基本概念、理论与思维,直接跳到语言自身的特性。当然,像Java、C++等语言也有很好的面向初学者的教材,直接学习它们可以了解更新的编程思想,距离实际应用更近,成效更显著。好在大多数主流编程语言都是与C语言一脉相承的,使得从C语言入门后,再学其他语言,并不会感到困难。
C语言给予第一类读者的最大好处是为读者打开一扇了解计算机的窗口。在几乎做任何事情都离不开计算机的今天,越了解计算机也就意味着越能利用好计算机。
美国卡内基·梅隆大学计算机科学系前系主任周以真教授在2006年发表了一篇著名的文章——《计算思维(Computational Thinking)》。文中谈到“计算机科学的教授应当为大学新生开一门称为‘怎么像计算机科学家一样思维’的课,面向非专业的,而不仅仅是计算机科学专业的学生”,这是因为“机器学习已经改变了统计学。……计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式”,所以“计算思维代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用”。不过遗憾的是,我们现在还很少有学校开设这样的课程。所以程序设计课在某种程度上肩负了传播计算思维的责任。这也是对于不需要编程的学生而言,最大意义之所在。通过学习编程,了解什么是抽象、递归、复用、折中等计算思维,能在各行各业中更有效地利用计算机工具解决复杂问题。
有关C语言程序设计基础(第3版)的文章
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
4)单片机C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不作修改就可根据单片机的不同较快地移植过来。C语言更新维护方便、可移植性强,但实践证明,单独使用C语言开发单片机程序也存在诸多不足,如占用存储空间大、对硬件控制不灵活等。与硬件关系密切的程序或对性能有特殊要求的程序往往用汇编语言设计,上层应用软件则往往用C语言来设计。......
2023-10-28
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
到目前为止有以下3种不同的解释.生物节律在一天24小时内,个体在生活上呈现周期性的活动:何时睡眠、何时进食、何时工作,几乎都有一定的顺序,而这些顺序几乎是由个体生理上的动作所决定的,像这种决定个体周期性生活活动的生理作用,我们称为生物钟。正如加德纳所发现的,对于失去的睡眠时间,通常我们并不需要去睡同样长的时间把它弥补回来。保养论是恢复论的补充。......
2023-11-06
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
二进制文件的特点是存储效率较高,但不便于程序中直观地进行数据处理。非缓冲文件系统指的是不由系统开辟文件缓冲区,而是由程序员为用到的每个文件设置数据缓冲区,并自行对文件缓冲区进行管理。C语言中,用一个系统已经构造好的文件类型变量来保存这些信息。......
2023-11-20
相关推荐