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

  • 5
  • 0
  • 约2.72万字
  • 约 20页
  • 2023-12-08 发布于宁夏
  • 举报

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

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精品文档

相关文档