C语言程序设计现代方法v2K.N.King笔记及课后习题解答.pdfVIP

C语言程序设计现代方法v2K.N.King笔记及课后习题解答.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

C语⾔程序设计现代⽅法v2K.N.King笔记及课后习题解答

1.C语⾔概述

代码地址:

C语⾔优点

可移植

功能强⼤。C语⾔拥有⼀个庞⼤的数据类型和运算符集合

灵活。可编写嵌⼊式系统到商业数据处理的各种应⽤程序。

标准库。包含了⽤于输⼊/输出、字符串处理、存储分配以及其他使⽤操作的函数

与Unix系统集成。

C语⾔的缺点。

C语⾔更容易隐藏错误。C语⾔的灵活性使得它编程出错的概率较⾼。

难以理解。

可能难以修改。没有类和包的概念,编程时不注重模块化设计会使代码那⼀维护

⾼效使⽤C语⾔

学习规避C语⾔陷阱。学习《C陷阱和缺陷》

使⽤软件⼯具使程序更加可靠。lint⼯具检查C代码

利⽤现有的代码库。可以减少错误和编码⼯作

采⽤⼀套切合实际的编码规范。程序规范统⼀,易于阅读和修改。

避免投机取巧和极度复杂的代码。实现功能尽量采⽤最简洁的⽅式。

紧贴标准。

2.C语⾔基本概念

C语⾔编译为可执⾏⼆进制⽂件过程:

预处理。⾸先将程序递交给预处理器。预处理器处理#号指令,修改程序代码。

编译。预处理后的程序进⼊编译器。编译器将程序翻译成⽣成汇编。

汇编。汇编代码转换机器指令(⽬标代码)

链接。链接器把由编译器产⽣的⽬标代码和所需的其他附加代码整合在⼀起,这样才最终产⽣了可执⾏的程序。这些附加代码包括

程序中⽤到的库函数(如printf)

指令:我们把预处理器执⾏的命令称为指令。

注释风格

/*多⾏注释

多⾏注释

多⾏注释

*/

//单⾏注释

变量(variable):存储单元

类型:每⼀个变量都必须有⼀个类型(type)。类型⽤来说明变量所存储的数据的种类。

声明:在使⽤变量之前必须对其进⾏声明(为编译器所做的描述)。

GCC常⽤选项

-Wall使编译器在检测到可能的错误时⽣成警告信息

-W除了-Wall⽣成的警告消息外,还需要针对具体情况的额外警告消息

-o指定输出⽂件

-pedantic根据C标准的要求⽣成警告消息。这样可以避免在程序中使⽤⾮标准特性。

-ansi禁⽤GCC的⾮标准C特性,并启⽤⼀些不太常⽤的标准特性

-std=c89-std=c99指定版本

3.格式化输/输出

scanf

使⽤scanf()时,程序员必须检查转换说明的数量是否与输⼊变量相匹配,并且检查每个转换是否适合相对应的变量。

在寻找数的起始位置时,scanf()会忽略空⽩字符

4.表达式

语句:程序运⾏时执⾏的指令

表达式:表⽰如何计算值的公式。最简单的表达式是常量和变量

运算符是构建表达式的基本⼯具。

在c99中,除法总是向0截取,即-9/7=-1。i%j值的符号与i相同,即-9%7=-2,9%-7=2。需要保证(i/j)*j+i%j==i。

运算符优先级:

结合性:当表达式包含两个或多个相同优先级的运算符时,仅有运算符优先级是不⾏的,这时结合性就发挥作⽤了

左结合性:运算符从左到右结合的。

右结合性:运算符从右到左结合的。如⼀元运算符-+,赋值运算符=

赋值运算符要求它的左操作数必须是左值(lvalue)。左值表⽰存储在计算机内存中的对象,⽽不是常量或计算的结果。变量是左值,⽽诸如10和2*i这样

的表达式则不是左值。

右值(rvalue):表达式

简单赋值:=

复合赋值:+=-=*=等等,它们是右结合的

⾃增及⾃减运算符

前缀⾃增:⽴即⾃增。

后缀⾃增:先⽤当前值,稍后在⾃增。

inti=10;

printf(i++:%d\n,i++);//10

printf(i:%d\n,i);//11

printf(++i:%d\n,++i);//12

printf(i:%d\n,i);//12

后缀++和后缀–⽐⼀元的正号、负号优先级⾼,后缀++和后缀–是

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档