《C专家编程》第四章——令人震惊的事实:数组和指针并不相同
摘要:数组和指针是C语言里相当重要的两部分内容,也是新手程序员最容易搞混的两个地方,本章我们锁定指针与数组,探讨它们的异同点。 首先来看指针与数组在声明上的区别: int a[10]; int *p; 很明显的,第一个是数组a,第二个是指针p。下一个问题是a的类型是什么?p的类型是什么?a[0]的类型是i
阅读全文
《C专家编程》第三章——分析C语言的声明
摘要:前面一章我们已经说过C语言存在的一些问题和它晦涩的地方,让我们对这门神奇的语言有了更深的了解。现在这一章则集中精力来讨论C语言的声明,分为三块,首先是说明C语言声明晦涩难懂的原因和声明是如何形成的,其次就是学习怎样对C语言的声明进行分析,另外本文将详细来探讨一个分析C语言声明的工具——cdecl,分
阅读全文
《C专家编程》第二章——这不是Bug,而是语言特性
摘要:无论一门语言有多么流行或多么优秀,它总是存在一些问题,C语言也不例外。本章讨论的重点是C语言本身存在的问题,作者煞费苦心的用一个太空任务和软件的故事开头,也用另一个太空任务和软件的故事结尾,引人入胜。 关于这两个故事,在这里不说,有兴趣的朋友还是建议买这本书去看看,这本书用相当轻松的文字而又不失深沉
阅读全文
《C专家编程》第一章——C:穿越时空的迷雾
摘要:这一章讲的是C语言的发展史,包括它是多么不经意的诞生,而后又经历了早期C、K&C、ANSI C的各种阶段,直到它现在形成的这个样子。C语言从来不是一门完美的语言,所以它一直在发展,直到今日,它仍然有很多不足之处,但这些都掩盖不了它的光辉。 C语言的产生源于一个失败的项目,这大概令许多人大吃一惊。这个
阅读全文
《C与指针》读后感
摘要:到目前为止,我已经读到了《C与指针》第十六章,总共十八章,接下来的章节内容分别是标准函数库、数据结构、以及C语言的运行环境,还没有完全做完练习就写这篇读后感原因有二,第一个当然是最主要的,这本书的前面十五章已经差不多完全概括这门语言的精髓了,第二个原因就是我很懒,懒得做下面的习题,这些习题的答案在网
阅读全文
《C与指针》第十五章练习
摘要:本章例程 15.1打开和关闭文件 15.2把字符转换为整数 15.3从一个文件向另一个文件复制文本行 15.4用sscanf处理行定向输入 15.5用sscanf处理可变格式的输入 15.6随机文件访问 本章问题 1.如果对fopen函数的返回值不进行检查可能会出现什么后果? answer: 如果由
阅读全文
《C与指针》第十四章练习
摘要:本章问题 1.预处理器定义了5个符号,给出了进行编译的文件名、文件行的当前行号,当前日期和时间以及编译器是否为ANSI C编译器。为每个符号举出一种可能的用途。 answer:在打印错误信息时,文件名和行号可能是很有用的,尤其是在调试的早期阶段。事实上,assert宏使用它们来实现自己的功能。_DA
阅读全文
《C与指针》第十三章练习
摘要:本章例程 13.1类型无关的链表查找 13.2打印命令行参数 13.3处理命令行参数 13.4神秘函数 13.5把二进制值转化为字符 本章问题 1.下面显示了一列声明。 从下面的列表中挑出与上面各个声明匹配的最佳描述。 answer: (建议可以试试书中所提到的cdecl程序验证,Linux的安装命
阅读全文
《C与指针》第十二章练习
摘要:本章例程 本章问题 1.程序12.3是否能进行改写,不使用current变量?如果可以,把你的答案和原先的函数作一比较。 answer: This version of the program uses one fewer variable,but it has three extra indire
阅读全文
《C与指针》第十一章练习
摘要:本章问题 1.在你的系统中,你能够声明的静态数组最大的长度能达到多少?使用动态内存分配,你最大能获取的内存块有多少? answer: This will vary from system to system,there are several things that may affect the r
阅读全文
《C与指针》第十章练习
摘要:本章问题 1.成员和数组元素有什么区别? answer:Structure members can be all different types;they are accessed by name;and unused memory may be between adjacent(邻近的) memb
阅读全文
《C与指针》第九章练习
摘要:本章问题 1.C语言缺少显示的字符串数据类型,这是一个优点还是一个缺点? answer: (这个问题存在争论(尽管我有一个结论))目前这个方法的优点是字符数组的效率和访问的灵活性,它的缺点是有可能引起错误,数组溢出,下标越界,不能改变任何用于保存字符串的数组的长度等。我的结论是从现代的面向对象的奇数
阅读全文
《C与指针》第八章练习
摘要:本章问题 1.根据下面给出的声明和数据,对每个表达式进行求值并写出它的值。在对每个表达式进行求值时使用原先给出的值(也就是说,某个表达式的结果不影响后面的表达式)。假定ints数组在内存中的起始位置是100,整型值和指针的长度都是四个字节。 answer: 2.表达式array[i+j]和i+j[a
阅读全文
《C与指针》第七章练习
摘要:本章问题 1.具有空函数体的函数可以作为存根使用,你如何对这类函数进行修改,使其更有用? answer:Have the stub(存根) print out a message when it is called,perhaps printing the values it was given a
阅读全文
《C与指针》第六章练习
摘要:本章问题 1.如果一个值的类型无法简单的通过观察它的位模式来判断,那么机器是如何知道应该怎样对这个值进行操纵的? answer:The machine doesn't make this determination.The compiler creates the appropriate instr
阅读全文
《C与指针》第五章练习
摘要:本章问题 1.这个表达式的类型和值为多少? answer:The cast is applied to the result of the division,and because both operand are integers,a truncating(截断) integer division
阅读全文
《C与指针》第四章练习
摘要:本章问题 1.Is the following statement legal?If so,what does it do? (下面的语句是否合法,如果合法,它做了什么) answer:It is legal,but it doesn't affect the program's state,Non
阅读全文
《C与指针》第三章练习
摘要:本章问题 1.What is the range for characters and the various integer types on your machine? (在你的机器上,字符型和整型的范围是多少?) answer : Depends,look in <limits.h> for
阅读全文
《C与指针》第二章练习
摘要:本章问题 1.Comments in C do not nest(嵌套).What would be the result of "commenting out" the code in the example shown below? (注释在C里面不能嵌套,下面“commenting out”注
阅读全文
《C与指针》第一章练习
摘要:本章例程 程序1.1 重排字符 本章问题 1.C is a free-form languague,which means that there are no rules regarding how programs must look.Yet the sample program followed
阅读全文