导图社区 C Primer Plus(第五版)1-5章
c语言基础部分,总结了概览、C语言概述、数据和 C、运算符、表达式和语句、字符串和格式化输入、输出等。
编辑于2024-01-29 01:19:22Windows API函数大全,无论你是初学者还是经验丰富的开发者,Windows API函数大全都能帮助你更好地理解Windows操作系统的底层机制,掌握高效开发Windows应用程序的技巧和方法。
硬编码反汇编引擎思路,反汇编引擎的主要功能是将计算机执行的机器指令(即CPU直接执行的二进制代码)转换回汇编语言代码。汇编语言是低级语言的一种,与机器语言密切相关,但比机器语言更易于人类阅读和编写。反汇编引擎通过解析机器指令,将其转换为对应的汇编指令,从而帮助开发人员或研究人员理解程序的内部结构和逻辑。
列车抢票系统,包括结构体,界面,操作等,可以快速理解系统的整体结构。制图清晰,欢迎参考!
社区模板帮助中心,点此进入>>
Windows API函数大全,无论你是初学者还是经验丰富的开发者,Windows API函数大全都能帮助你更好地理解Windows操作系统的底层机制,掌握高效开发Windows应用程序的技巧和方法。
硬编码反汇编引擎思路,反汇编引擎的主要功能是将计算机执行的机器指令(即CPU直接执行的二进制代码)转换回汇编语言代码。汇编语言是低级语言的一种,与机器语言密切相关,但比机器语言更易于人类阅读和编写。反汇编引擎通过解析机器指令,将其转换为对应的汇编指令,从而帮助开发人员或研究人员理解程序的内部结构和逻辑。
列车抢票系统,包括结构体,界面,操作等,可以快速理解系统的整体结构。制图清晰,欢迎参考!
C Primer Plus(第五版) 1-5章
一、 概览
A. C语言的起源
B. 使用C语言的理由
a. 设计特性
b. 高效性
b. c是一种高效的语言。在设计上它充分利用了当前计算机在能力上的优点。C程序往往很紧凑且运行速度快.
c. 可移植性
c. C是一种可移植语言。 如果修改是必要的,则通常只须改变伴随主程序的一个头文件中的几项内容即可。 C在可移植性方面处于领先地位。
d. 强大的功能和灵活性
d. C强大而又灵活(计算机世界中经常使用的两个词)。
e. 面向编程人员
e. C面向编程人员的需要。它允许您访问硬件,并可以操纵内存中的特定位。它具有丰富的运算符供选择。让您能够简洁地表达自己的意图。在限制您所能做的事情方面,C不如Pascal 这样的语言严格。这种灵活性是优点,同时也是一种危险。优点在于:许多任务(如转换数据形式)在C中都简单得多。危险在于:使用C时,您可能会犯在使用其他一些语言时不可能犯的错误。C给予您更多的自由,但同时也让您承担更大的风险。 另外,多数c实现都有一个大型的库,其中包含有用的C函数。这些函数能够处理编程人员通常会面对的许多需求。
f. 缺点
f. C确实有一些缺点。和人一样,缺点和优点往往是同一特征相对的两个方面。例如,我们前面曾说过,C在表达方面的自由会增加风险。尤其是C对指针(在本书后面部分将学到)的使用,意味着您可能会犯非常难以追踪的编程错误。正如以前一位计算机专家曾经指出的,自由的代价是永远的警惕。 C的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码。没有谁强迫您编写含糊难懂的代码,但存在这样的可能性。试问,除C之外还有哪种语言存在一年一度的“含糊代码~(Obfuscated Code)竞赛呢? 此外,C还有许多的优点,但毫无疑问,C还有一些缺点。我们不想在这一点上多费笔墨,还是换一个新的话题吧。
C. C语言的发展方向
D. 计算机工作的基本原理
a. 部件
1. 中央处理单元 (或称CPU)
2. 永久存储器 (一般是硬盘)
b. 计算机工作原理
1. 存储在计算机中的一切内容都是数字
2. 计算机程序最终必须以这种数字指令代码(或称为机器语言)来表示
E. 高级计算机语言和编译器
F. 使用 C 语言的七个步骤
a. 定义程序目标
b. 设计程序
c. 编写代码
d. 编译
e. 运行程序
f. 测试和调试程序
g. 维护和修改程序
G. 编程机制
a. 目标代码文件、可执行文件和库
b. UNIX 系统
c. 集成开发环境(Windows 系统下)
d. IBM PC的DOS 编译器
e. Macintosh 上的C
H. 语言标准
a. 第1个 ANSM/ISOC 标准 指导原则
1. 相信程序员
2. 不妨碍程序员做需要完成的事情
3. 让语言保持短小简单
4. 只提供一种方法来执行一个操作
5. 使程序运行速度快,即使不能保证其可移植性
b. C99 标准
I. 本书体例
a. 字体
b. 屏幕输出
1. 特殊按键
2. 我们的系统
3. 您的系统
J. 总结
J. C 是一种强大、简洁的编程语言。之所以流行是因为它提供了有用的编程工具和对硬件良好的控制,还因为C程序在从一个系统向另一个系统移植方面比大多数程序更容易。 C是一种需要编译的语言。C编译器和链接器是将c语言源代码转换为可执行代码的程序。 用C编程可能很费力、困难并让您感到灰心,但这一工作也可能让您着迷、兴奋和感到满意。希望您也能像我们一样,沉醉于用c进行编程。
二、 C语言概述
A. C 语言的一个简单实例
B. 实例说明
a. 快速简介
b. 程序细节
(1) # include 指示和头文件 # include<stdio.h>
(2) main() 函数 int main(void)
(3) 注释
1| 单行注释--> //
2| 多行注释--> /* */
(4) 花括号、程序体和代码块
(4) { ..... 语句; }
(5) 声明 int num;
(6) 声明变量的四点好处
1| 把所有变量放在一起,可以证让读者更容易掌握程序的内容。
2| 在您开始编写程序之前,考虑一下需要声明的变量会促使您做一些计划工作。程序需要在开始得到什么信息? 到底想让程序得出什么结果? 表示数据的最好方式是什么?
3| 声明变量可以帮助避免程序中出现一类很难发现的细微错误,即变量名的错误拼写。
4| 如果您没有声明所有变量,将不能编译您的c程序。
(7) 名字的选择
(8) 赋值
(9) printf() 函数
(10) return 语句 return 0;
(10) returm 语句(返回语句)是程序的最后一个语句。
C. 一个简单的程序结构
D. 使程序可读的技巧
E. 更进一步
a. 说明
a. 程序在开始处用一个注释(新形式的注释)说明了文件的名称和程序的目的。
b. 多个声明
b. 程序在一个声明语句里声明了两个变量而不是一个。
c. 乘法 feet =6*fathoms:
d. 输出多个值
d. 程序以新的方式使用了pnintf()。
F. 多个函数
F. butler()函数在程序中出现了3次。 第一次出现在原型中,通知编译器要片到的该函数。 第二次是在: main()函数中以函数调用的形式出现的。 最后,程序给出了函数的定义,即函数本身的源代码。
G. 调试
a. 语法错误
b. 语义错误 语义错误就是在意思上的错误。
c. 程序状态 程序状态(program,state) 是指在程序执行过程中的给定点上所有变量值的集合。
H. 关键字和保留字符
I. 关键概念
J. 总结
J. C语言程序是由一个或者多个函数纽成的。每一个c程序都必须包含-个名为 main()的函数,因为当程序开始时要调用该函数。 每个c语句都是一个针对计算机的指令,并以一个分号作为结束标志。 prinf()函数用于输出i句和变量的值。 语句的语义就是它所表达的意思。 关键字是C语言的词汇。
三、 数据和 C
A. 示例程序
B. 变量与常量数据 有些数据可以在程序使用之前预先设定并在整个运行过程中没有变化,这称为常量。 另外的数据在程序运行过程中可能变化或被赋值,这称为变量。
C. 数据:数据类型关键字 整数类型与浮点类型
a. 整数 整数(integer)就是没有小数部分的数。
b. 浮点 浮点数(floating-pint) 就是有小数部分的数。
D. C 数据类型
a. int 类型
1. 声明 int 变量
2. 初始化变量
3. int 类型常量
4. 打印 int 值
b. 其它整数类型
1. short int 类型(或者简写为 short 类型)
2. long int 类型(或者简写为 long 类型)
3. long long int 类型(或者简写为long long 类型)
4. unsigned int 类型(或者简写为 unsigned 类型)
5. umsigned long int 简写为unsigned long)
6. unsigned shor in(简写为unsigned short)类型
7. unsigned long long int(简写为 unsigned long long)类型。
c. 使用字符 char 类型
1. 声明 char 变量
2. 字符常量及初始化
3. 非打印字符
4. 书写 int 系列类型的常量
5. 打印字符
d. bool 类型 即逻辑值 tnue(真)与false(假)。
e. 可移植的类型: intypes.h
f. float、double 和 long double 类型
g. 复数和虚数类型
1. 复数类型
(1) float_Complex
(2) double_Complex
(3) long double_Complex
2. 虚数类型
(1) float_Imaginary
(2) aouble_Imaginay
(3) long double_Imaginary
h. 其它类型
i. 类型大小
E. 使用数据类型
F. 参数和易犯的错误
G. 转义序列
a. 过程分析
b. 刷新输出
H. 关键概念
I. 总结
I. c有多种数据类型。基本的数据类型包舍两大类:整数类型和浮点类型。 整数类型的两个重要特征是其类型的大小以及它是有符号还是无符号的。 最小的整数类型是cha的。 其他的整数类型包括 short、int、 long 和 long long 类型。 浮点类型为 float、doubte 和ANSF C新增的 lomg doubt。 复数和数类型,方法是把Compkx 和_Imagnay 关键字同浮点类型关键字结合用。
四、 字符串和格式化 输入、输出
A. 前程引导 新特性
a. 它使用一个数组(aray)来存放一个字符串。
b. 它使用%s转换说明符(conversion spcification) 来处理字符串的输入和输出。
c. 它使用C预处理器定义了代表值62.4的符号常量DENSiTY。
d. 它使用己函数 strlen()来获取字符串的长度。
B. 字符串简介
a. char 数组类型和空字符
b. 使用字符串 字符串和字符
c. strlen()函数 以字符为单位给出字符串 的长度。
C. 常量和 C 预处理器
a. const 修饰符 const int months=12; //MOTNHS 是一个代表12的符号常量
b. 系统定义的明显常量
c. limis.h中的一些符号常量
D. 研究和利用 printf()和scanf()
a. printf()
1. printf() 函数
2. 使用 printf()
1. 实际要打印的字符
2. 转换说明
3. printf() 的转换说明修饰符
4. printf() 的标志
b. 转换说明的意义
1. 不匹配的转换
2. printf() 的返回值
3. 打印较长的字符串
(1) 方法1 是使用多个pintf()语句。
(2) 方法2 是用反斜线符号(/和回车键的组合来结束第一行。
(3) 方法3 采用字符串连接的方法,它是ANSI C 的新方法。
c. scanf()
1. 使用 scanf()
(1) 如果使用 scanf() 来读取前面讨论过的某种基本变量类型的值, 请在变名之前加上一个 &。
(2) 如使用 scanf() 把一个字符串读进一个字符数组中,请不要使用 &。
2. ANSl C 中 scanf() 的转换说明符
3. scanf()的转换修饰符
(1) 从scanf() 的角度看输入
(2) 格式字符串中的常规字符
(2) scanf()函数允许您把通字符放在格式字符串中。除了空格字符之外的普通字符一定要与输入字符串准确匹配。
(3) scanf() 的返回值
d. 关键概念
1. c 的 char 类型表示-一个字符。
2. 在程序中好使用 # define 或是关键字 const 以符号代表数字常量。
3. 输入和输出函数 scanf()和printf()都使用一个系统, 在这个系统中必须使第一个参数中的, 类型说明符与后参数中的相匹配。
4. 空白字符(制表符、空格和换行符) 对于 scanf()如何处理输入起着至关重要的作用。
e. 总结
1. 字符串是作为个单位处理的一系列学符。
2. strlen()函数(在 stingh头文件中定义) 可以用于获得一个字符串的长度 (不包括标示终止的空字符)。 scanf()函数在使用s说明符时, 可以用于读取包含一个单词的字符串。
3. printf()和 scanf()函数对输入和输出提供多种支持。二者都使用一个包含内嵌转换说明符的控制字符串来指示将要读取或打印的数据项的类型和数目。 还可以使用转换说明符来控制输出的外观: 字段宽度、小数点位置和字段内的布局。
五、 运算符、表达式 和语句
A. 基本运算符
a. 赋值运算符 “=”
b. 加法运算符 “+”
c. 减法运算符 “-”
d. 符号运算符 “+”和“-”
e. 乘法运算符 “ * ”
f. 除法运算符 “ / ”
B. 运算符的优先级
C. 其它运算符
a. sizeof 运算符 和 size_t 类型
a. c 规定 sizeof 返回 sizc_t 类型的值
b. 取模(余)运算符 “ % ”
c. 自增\自减运算符 “++”和“--”
1. ++/-- 在前 先自增/自减,再计算
2. ++/-- 在后 先计算,再自增/自减,
D. 表达式和语句
a. 表达式 由运算符和操作数组合构成的
b. C 语句
c. 复合语句 (代码块)
E. 类型转换
F. 带有参数的函数
F. 如果函数不接受参数,函数头里的圆括号将包含关键字 void。 函数中的变量名字是局部的。
六、 主题