C Primer Plus读书笔记:关键知识点解析

需积分: 0 0 下载量 3 浏览量 更新于2024-07-29 收藏 1.46MB DOC 举报
"《C Primer Plus》是一本深入学习C语言的经典教材,本文是作者riusksk(泉哥)的读书笔记,主要涵盖了对C语言输入输出、字符串处理、常量定义以及数值限制等方面的理解。" 在C编程中,输入输出是基础操作之一。`scanf()`函数在读取用户输入时,会在字符串末尾自动添加空字符`\0`,并且当遇到空格、制表符或换行符时停止读取。因此,如果想要读取整个句子而非单个单词,推荐使用`gets()`函数。然而,`gets()`存在缓冲区溢出的安全风险,所以在C++中,通常建议使用更安全的`std::getline()`。 字符串在C语言中是字符数组,字符串常量如"x"不同于字符常量'x'。前者是字符数组的派生类型,包含字符'x'和终止符'\0',而后者是基本类型char。`strlen()`函数计算字符串的长度,不包括终止符'\0',而`sizeof()`函数返回整个字符数组的字节数,包括终止符。 符号常量在编程中起到重要的作用,它们提供代码的可读性和灵活性。通过`#define`预处理器定义的符号常量可以方便地在多处修改同一值,如定义圆周率PI。使用`const`关键字也可以创建符号常量,这种常量是只读的,不能在程序运行时被修改。例如,定义浮点数常量π: ```c #define PI 3.14159 // 或者 const float pi = 3.14159; ``` C语言提供了标准库来获取各种类型的数值限制,如`<limits.h>`包含整数类型的最小值和最大值,`<float.h>`包含浮点数的限制。以下代码展示了如何打印这些限制: ```c #include <stdio.h> #include <limits.h> #include <float.h> int main(void) { printf("最大整数值: %d\n", INT_MAX); printf("最小整数值: %d\n", INT_MIN); printf("最大浮点数正常值: %e\n", FLT_MAX); printf("最小浮点数正常值: %e\n", FLT_MIN); return 0; } ``` 这段代码会输出当前系统上整数和浮点数的最大和最小值,这对于理解和调试程序中的数值计算很有帮助。通过这些知识,开发者可以更好地掌握C语言的内存管理、输入输出处理以及数值限制,从而编写出更加高效和安全的代码。