CPrimer Plus(第6版)中文版
- 作者: [美]史蒂芬·普拉达(Stephen Prata)
- 分类: 未分类
- 个人划线与想法: 73 条
阅读记录
1. 第9章 函数
记录日期:2026-10-12
划线
首先,什么是函数?函数(function)是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。
2. 第4章 字符串和格式化输入/输出
记录日期:2026-08-31
划线
这是因为在K&R C中,表达式或参数中的float类型值会被自动转换成double类型
想法 / 批注
float 会自动转换成double类型
3. 第4章 字符串和格式化输入/输出
记录日期:2025-06-18
划线
因为 1 字节储存一个字符
4. 第4章 字符串和格式化输入/输出
记录日期:2025-06-18
划线
上一章提到了 sizeof 运算符,它以字节为单位给出对象的大小
5. 第4章 字符串和格式化输入/输出
记录日期:2025-06-18
划线
注意图4.1中数组末尾位置的字符\0。这是空字符(null character),C语言用它标记字符串的结束。
6. 第3章 数据和C
记录日期:2025-06-18
划线
整数类型和浮点数类型。通过为类型分配的储存量以及是有符号还是无符号,区分不同的整数类型
7. 第3章 数据和C
记录日期:2025-06-18
划线
所有编译器都能顺利编译并运行该程序,但其中大部分会给出警告。的确,有些编译器会捕获到这类问题,然而C标准对此未作要求
8. 第3章 数据和C
记录日期:2025-06-17
划线
sizeof是C语言的内置运算符,以字节为单位给出指定类型的大小
9. 第1章 初识C语言
记录日期:2025-06-16
划线
用C语言编写程序时,编写的内容被储存在文本文件中,该文件被称为源代码文件(source code file
10. 第1章 初识C语言
记录日期:2025-06-16
划线
C99的修订保留了C语言的精髓,C仍是一门简洁高效的语言。
11. 第1章 初识C语言
记录日期:2025-06-16
划线
1987年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(DennisRitchie)合著的The C Programming Language(《C语言程序设计》)第1版是公认的C标准,通常称之为K&R C或经典C。特别是,该书中的附录中的“C语言参考手册”已成为实现C的指导标准。
12. 第1章 初识C语言
记录日期:2025-06-16
划线
在计算机看来,高级指令就是一堆无法理解的无用数据。
13. 第1章 初识C语言
记录日期:2025-06-16
划线
1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言
想法 / 批注
C语言诞生日期
14. 第3章 数据和C
记录日期:2024-06-20
划线
整数没有小数部分,浮点数有小数部分。
15. 第3章 数据和C
记录日期:2024-06-20
划线
字节(byte)是常用的计算机存储单位。对于几乎所有的机器,1字节均为8位。这是字节的标准定义,至少在衡量存储单位时是这样(但是,C语言对此有不同的定义,请参阅本章3.4.3节)。
16. 第3章 数据和C
记录日期:2024-06-20
划线
是计算机内存的基本构建块。
17. 第3章 数据和C
记录日期:2024-06-20
划线
最小的存储单元是位(bit),可以储存0或1(或者说,位用于设置“开”或“关”)
18. 第3章 数据和C
记录日期:2024-06-20
划线
储存方式可分为两大基本类型:整数类型和浮点数类型
19. 第3章 数据和C
记录日期:2024-06-08
划线
为了打印新类型的变量,在printf()中使用%f来处理浮点值
20. 第3章 数据和C
记录日期:2024-06-08
划线
float 类型可以储存带小数的数字
想法 / 批注
存储小数的数字
21. 第3章 数据和C
记录日期:2024-06-08
划线
整数类型和浮点数类型
想法 / 批注
整数类型和浮点数类型
22. 第3章 数据和C
记录日期:2024-06-06
划线
整数类型和浮点数类型的区别
23. 第2章 C语言概述
记录日期:2024-06-06
划线
复习题的参考答案在附录A中。 1.C语言的基本模块是什么? 2.什么是语法错误?写出一个英语例子和C语言例子。 3.什么是语义错误?写出一个英语例子和C语言例子。 4.Indiana Sloth编写了下面的程序,并征求你的意见。请帮助他评定。
24. 第2章 C语言概述
记录日期:2024-06-06
划线
编译器可以检测出语法错误,但是程序里的语义错误只有在编译完之后才能从程序的行为中表现出来
25. 第2章 C语言概述
记录日期:2024-06-06
划线
C程序由一个或多个C函数组成。每个C程序必须包含一个main()函数,这是C程序要调用的第1个函数。简单的函数由函数头和后面的一对花括号组成,花括号中是由声明、语句组成的函数体。
26. 第2章 C语言概述
记录日期:2024-06-06
划线
编程是一件富有挑战性的事情。程序员要具备抽象和逻辑的思维,并谨慎地处理细节问题(编译器会强迫你注意细节问题)。
27. 第2章 C语言概述
记录日期:2024-06-05
划线
编译器另一个常见的毛病是,报错的位置比真正的错误位置滞后一行
28. 第2章 C语言概述
记录日期:2024-06-05
划线
C标准建议,要为程序中用到的所有函数提供函数原型
29. 第2章 C语言概述
记录日期:2024-06-05
划线
无论main()在程序文件处于什么位置,所有的C程序都从main()开始执行
30. 第2章 C语言概述
记录日期:2024-06-05
划线
何时执行 butler()函数取决于它在 main()中被调用的位置
31. 第2章 C语言概述
记录日期:2024-06-05
划线
函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明(function declaration)。
32. 第2章 C语言概述
记录日期:2024-06-05
划线
第1次是函数原型(prototype),告知编译器在程序中要使用该函数;
33. 第2章 C语言概述
记录日期:2024-06-05
划线
在函数中用空行分隔概念上的多个部分
34. 第2章 C语言概述
记录日期:2024-06-05
划线
选择有意义的函数名和写注释
35. 第2章 C语言概述
记录日期:2024-06-05
划线
每条语句各占一行
36. 第2章 C语言概述
记录日期:2024-06-05
划线
编写可读性高的程序是良好的编程习惯。可读性高的程序更容易理解,以后也更容易修改和更正。提高程序的可读性还有助于你理清编程思路
37. 第2章 C语言概述
记录日期:2024-06-05
划线
C标准要求main()这样做
38. 第2章 C语言概述
记录日期:2024-06-05
划线
d表明把变量作为十进制整数打印
39. 第2章 C语言概述
记录日期:2024-06-05
划线
%d相当于是一个占位符,其作用是指明输出num值的位置
40. 第2章 C语言概述
记录日期:2024-06-05
划线
\n的意思是换行
41. 第2章 C语言概述
记录日期:2024-06-05
划线
I am a simple传递给printf()函数。该信息被称为参数,或者更确切地说,是函数的实际参数(actual argument
42. 第2章 C语言概述
记录日期:2024-06-05
划线
在执行int num;声明时,编译器在计算机内存中为变量num预留了空间,然后在执行这行赋值表达式语句时,把值储存在之前预留的位置。
43. 第2章 C语言概述
记录日期:2024-06-05
划线
赋值是C语言的基本操作之一
44. 第2章 C语言概述
记录日期:2024-06-05
划线
前面提到过,C99之前的标准要求把声明都置于块的顶部,这样规定的好处是:把声明放在一起更容易理解程序的用途
45. 第2章 C语言概述
记录日期:2024-06-05
划线
声明变量有助于发现隐藏在程序中的小错误
46. 第2章 C语言概述
记录日期:2024-06-05
划线
操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称
47. 第2章 C语言概述
记录日期:2024-06-05
划线
可以用小写字母、大写字母、数字和下划线(_)来命名。而且,名称的第1个字符必须是字符或下划线,不能是数字
48. 第2章 C语言概述
记录日期:2024-06-05
划线
C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符
49. 第2章 C语言概述
记录日期:2024-06-05
划线
C 语言可以处理多种类型的数据,如整数、字符和浮点数。把变量声明为整型或字符类型,计算机才能正确地储存、读取和解释数据
50. 第2章 C语言概述
记录日期:2024-06-05
划线
程序清单2.1中,这行代码叫作声明(declaration)。声明是C语言最重要的特性之一。在该例中,声明完成了两件事。其一,在函数中有一个名为num的变量(variable)。其二,int表明num是一个整数(即,没有小数点或小数部分的数)。
51. 第2章 C语言概述
记录日期:2024-06-05
划线
main是一个极其普通的名称,但是这是唯一的选择
52. 第2章 C语言概述
记录日期:2024-06-05
划线
ANSI/ISO C规定了C编译器必须提供哪些头文件
53. 第2章 C语言概述
记录日期:2024-06-05
划线
#include这行代码是一条C预处理器指令(preprocessor directive)。通常,C编译器在编译前会对源代码做一些准备工作,即预处理(preprocessing)。
54. 第2章 C语言概述
记录日期:2024-06-05
划线
在程序的return语句前添加一行代码: getchar();
55. 第1章 初识C语言
记录日期:2024-06-01
划线
望出现这种情况,可以让程序暂停,直到按下Enter键,窗口才消失。要实现这种效果,可以在程序的最后(return这行代码之前)添加下面一行代码
56. 第1章 初识C语言
记录日期:2024-06-01
划线
C编译器生成的中间目标代码文件的扩展名是.obj(也可能是其他扩展名)。
想法 / 批注
生成中间文件
57. 第1章 初识C语言
记录日期:2024-06-01
划线
GNU的意思是“GNU’s Not UNIX”,即GNU不是UNIX
想法 / 批注
GNU的意思是 GNU ‘s Not UNIX
58. 未标注章节
记录日期:2024-06-01
划线
[插图]
59. 第1章 初识C语言
记录日期:2024-06-01
划线
我们需要编译器将我们编写的代码(源代码)翻译成计算机能看懂的代码(机器代码
想法 / 批注
编写的代码翻译成计算机能够看懂的代码
60. 第1章 初识C语言
记录日期:2024-06-01
划线
但是BUDGET.C是无效文件名,因为该名称的扩展名使用了大写C而不是小写c
想法 / 批注
后缀是小写的c
61. 第1章 初识C语言
记录日期:2024-06-01
划线
如前所述,文件名应该以.c结尾
62. 第1章 初识C语言
记录日期:2024-06-01
划线
C编程的基本策略是,用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码
想法 / 批注
C编程的基本策略
63. 第1章 初识C语言
记录日期:2024-06-01
划线
计算机的工作原理是:如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序
64. 第1章 初识C语言
记录日期:2024-06-01
划线
CPU能理解的指令有限(这些指令的集合叫作指令集
65. 第1章 初识C语言
记录日期:2024-06-01
划线
一个吉赫兹的CPU一秒钟能重复这样的操作大约十亿次
66. 第1章 初识C语言
记录日期:2024-06-01
划线
随机存取内存(RAM)是存储程序和文件的工作区
想法 / 批注
随机存储器RAM 是存储程序和文件的工作区
67. 第1章 初识C语言
记录日期:2024-06-01
划线
许多软件公司都用C语言来开发文字处理程序、电子表格、编译器和其他产品,因为用 C语言编写的程序紧凑而高效
68. 第1章 初识C语言
记录日期:2024-06-01
划线
C是可移植的语言
69. 第1章 初识C语言
记录日期:2024-06-01
划线
C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计
70. 前言
记录日期:2024-05-24
划线
C语言从早期的非正式的K&R标准,发展到1990 ISO/ANSI标准,进而发展到2011 ISO/IEC标准。
想法 / 批注
C语言的早期标准
71. 第4章 字符串和格式化输入/输出
记录日期:2026-08-31
划线
sizeof 运算符以字节为单位返回类型或值的大小
想法 / 批注
sizeof是宏定义,不是函数
72. 第2章 C语言概述
记录日期:2024-06-05
划线
.声明
想法 / 批注
申明的定义
73. 第1章 初识C语言
记录日期:2024-06-02
划线
对编程而言,可移植性意味着什么?
想法 / 批注
在编程中,可移植性(portability)指的是软件系统或程序在不同的计算环境中运行的能力。具体而言,这意味着一个程序可以在不同的操作系统、硬件平台或编译器上运行,而不需要进行或只需进行很少的修改。可移植性的重要性在于它可以使软件更广泛地应用,降低开发和维护成本,并且提高软件的寿命和灵活性。
实现软件可移植性通常涉及以下几个方面:
编程语言选择:使用跨平台的编程语言和标准库。例如,Python、Java、C++ 等语言都有很好的跨平台支持。
遵循标准:使用标准化的接口和协议,如 POSIX 标准,这样可以确保代码在不同平台上的一致性。
抽象化:对操作系统特性和硬件特性进行抽象化,通过使用抽象层或接口来避免直接依赖于特定平台的特性。
编译器独立性:避免使用特定编译器的扩展和特性,尽量使用标准的编程语言特性。
环境配置:利用自动化构建工具和配置工具(如 CMake、Autoconf)来管理项目的构建和依赖,确保可以在不同环境下进行配置和编译。
测试和验证:在不同平台上进行测试,确保软件在这些平台上都能正确运行。持续集成(CI)工具可以帮助实现这一点。
来源:微信读书