《C Primer Plus(第6版)中文版》一1.2 选择C语言的理由

1.2 选择C语言的理由

在过去40多年里,C语言已成为最重要、最流行的编程语言之一。它的成长归功于使用过的人都对它很满意。过去20多年里,虽然许多人都从C语言转而使用其他编程语言(如,C++、Objective C、Java等),但是C语言仍凭借自身实力在众多语言中脱颖而出。在学习C语言的过程中,会发现它的许多优点(见图1.1)。下面,我们来看看其中较为突出的几点。

图1.1 C语言的优点

1.2.1 设计特性

C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。因此,用C语言编写的程序更易懂、更可靠。

1.2.2 高效性

C是高效的语言。在设计上,它充分利用了当前计算机的优势,因此C程序相对更紧凑,而且运行速度很快。实际上,C语言具有通常是汇编语言才具有的微调控制能力(汇编语言是为特殊的中央处理单元设计的一系列内部指令,使用助记符来表示;不同的CPU系列使用不同的汇编语言),可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。

1.2.3 可移植性

C是可移植的语言。这意味着,在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。大部分语言都希望成为可移植语言,但是,如果经历过把IBM PC BASIC程序转换成苹果BASIC(两者是近亲),或者在UNIX系统中运行IBM大型机的FORTRAN程序的人都知道,移植是最麻烦的事。C语言是可移植方面的佼佼者。从8位微处理器到克雷超级计算机,许多计算机体系结构都可以使用C编译器(C编译器是把C代码转换成计算机内部指令的程序)。但是要注意,程序中针对特殊硬件设备(如,显示监视器)或操作系统特殊功能(如,Windows 8或OS X)编写的部分,通常是不可移植的。

由于C语言与UNIX关系密切,UNIX系统通常会将C编译器作为软件包的一部分。安装Linux时,通常也会安装C编译器。供个人计算机使用的C编译器很多,运行各种版本的Windows和Macintosh(即,Mac)的PC都能找到合适的C编译器。因此,无论是使用家庭计算机、专业工作站,还是大型机,都能找到针对特定系统的C编译器。

1.2.4 强大而灵活

C语言功能强大且灵活(计算机领域经常使用这两个词)。例如,功能强大且灵活的UNIX操作系统,大部分是用C语言写的;其他语言(如,FORTRAN、Perl、Python、Pascal、LISP、Logo、BASIC)的许多编译器和解释器都是用C语言编写的。因此,在UNIX机上使用FORTRAN时,最终是由C程序生成最后的可执行程序。C程序可以用于解决物理学和工程学的问题,甚至可用于制作电影的动画特效。

1.2.5 面向程序员

C语言是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。C语言有丰富的运算符,能让程序员简洁地表达自己的意图。C没有Pascal严谨,但是却比C++的限制多。这样的灵活性既是优点也是缺点。优点是,许多任务用C来处理都非常简洁(如,转换数据的格式);缺点是,你可能会犯一些莫名其妙的错误,这些错误不可能在其他语言中出现。C语言在提供更多自由的同时,也让使用者承担了更大的责任。

另外,大多数C实现都有一个大型的库,包含众多有用的C函数。这些函数用于处理程序员经常需要解决的问题。

1.2.6 缺点

人无完人,金无足赤。C语言也有一些缺点。例如,前面提到的,要享受用C语言自由编程的乐趣,就必须承担更多的责任。特别是,C语言使用指针,而涉及指针的编程错误往往难以察觉。有句话说的好:想拥有自由就必须时刻保持警惕。

C语言紧凑简洁,结合了大量的运算符。正因如此,我们也可以编写出让人极其费解的代码。虽然没必要强迫自己编写晦涩的代码,但是有兴趣写写也无妨。试问,除C语言外还为哪种语言举办过年度混乱代码大赛[1]?

瑕不掩瑜,C语言的优点比缺点多很多。我们不想在这里多费笔墨,还是来聊聊C语言的其他话题。

时间: 2024-07-31 16:28:33

《C Primer Plus(第6版)中文版》一1.2 选择C语言的理由的相关文章

(六十二)第四章总结——《C++ Primer Plus 第6版 中文版》

书是<C++ Primer Plus  第6版  中文版> 数组.指针.结构 是C++的3种复合类型.   注:为了方便,类型名用int为主,变量名用a为主.   数组: 包括数组(例如int a[10];)和字符串(例如char a[10];),还有string类(例如string a="abc";),vector类(例如vector<int>a(5)).array类(array<int,3>a)等. 数组名表示数组所在的(第一个元素)内存地址.

求大神解答一下-C++ primer plus 第6版 中文版 第16章复习题的一个问题

问题描述 C++ primer plus 第6版 中文版 第16章复习题的一个问题 奇葩的是课后居然没答案...... 求正规.严谨.简洁的标准答案! 程序清单16.15(在p708页):functor.cpp //functor.cpp--using a functor #include尖括号iostream尖括号 #include尖括号list尖括号 #include尖括号iterator尖括号 #include尖括号algorithm尖括号 template//functor class

【转】c++.primer.plus.第五版.中文版[下载]

c++.primer.plus.第五版.中文版[下载] 一共有5部分.全部下载完才可解压阅读. c++.primer.plus.第五版.中文版(一) c++.primer.plus.第五版.中文版(二) c++.primer.plus.第五版.中文版(三) c++.primer.plus.第五版.中文版(四) c++.primer.plus.第五版.中文版(五) "在遇到无法解决的问题时,我总会求助于C++ Primer一书."--Bruce Eckel,"编程思想"

c语言-关于C Primer Plus第5版的二叉树的问题

问题描述 关于C Primer Plus第5版的二叉树的问题 //从树中删除一个项目 bool DeleteItem(const Item *pi,Tree *ptree) { Pair look; look = SeekItem( pi, ptree); //如果要删除的项目本身不存在 if(look.child == NULL) { return false; } //删除根项目 if(look.child == ptree->root) { DeleteNode(&ptree->

谁有&amp;amp;lt;&amp;amp;lt;CLR Via C#&amp;amp;gt;&amp;amp;gt;第三版中文版的电子书

问题描述 谁有<<CLRViaC#>>第三版中文版的电子书,我是个初学者,看网上推荐此书的人多,想看一下,我的QQ:330784617.谢谢!! 解决方案 解决方案二:试一试我一般看英文的,虽然很少看书:(解决方案三: 解决方案四:第二版有的,想看第三版.

C Primer Plus 第6版 编程练习 2.12 答案

1# 2# #include<stdio.h> int main(void) { printf("胡八一\n"); printf("胡\n八一\n"); printf("姓名:胡八一\n"); printf("地址:山东省青岛市\n"); system("pause"); return 0; } 3# #include<stdio.h> int main(void) { int a

手机QQ国际版可即时翻译 支持19国语言互译

虽然从目前的情况来看,承载腾讯国际化的是微信而非手机 QQ,不过最近推出的手机QQ国际版,却在功能上向国际化迈出了一大步.新版的"QQ International"内置了 7 种语言,可以将聊天消息实时翻译成外语,支持包括繁体中文.英语.韩语.日语.法语.阿拉伯语在内的 19 种语言. "QQ International"和普通的手机 QQ 差别不大,但在功能上更加简洁.如不支持贴图表情.不支持游戏和阅读,也没有引入服务中心.不过 QQ International

《CCNP安全VPN 642-648认证考试指南(第2版)》——5.4节门户语言的本地化

5.4门户语言的本地化 CCNP安全VPN 642-648认证考试指南(第2版) 正如之前提到的,用户可以从语言的下拉菜单中选择一种语言来决定门户的本地化. ASA使用翻译表来管理本地化的任务.这些表含有本地化信息或者可编辑的语言字段,而每一个栏目或者门户页面的区域.客户端/服务器的插件.安全桌面和AnyConnect客户端的页面都需要它.接着基于应用程序或者位置的分类将翻译表分到不同的功能域.当前配置了11个翻译域,它们可被编辑修改.默认情况下每一个翻译域都预配置了下面的语言. EN:Engl

可编辑的移动版 Google Docs 已支持45种语言

移动版 http://www.aliyun.com/zixun/aggregation/14254.html">Google Docs 在去年11月开始支持编辑功能为我们提供了很大的方便,不过当时仅限英文版本.今天他们一口气开放了44 种新语言的支持,当然也包括景德镇人民喜闻乐见的115.html">简体中文.Android 2.2 以上和 iOS 3.0 以上的用户都可以直接在浏览器中打开 http://docs.google.com/ 随时随地的用自己熟悉的语言进行云端