Kenneth Reek - Pointers on C

时间:2016-10-21 18:16:27
【文件属性】:

文件名称:Kenneth Reek - Pointers on C

文件大小:3.79MB

文件格式:PDF

更新时间:2016-10-21 18:16:27

Pointers, C, C++, Memory

Pointers On C brings the power of pointers to your C programs. Designed for professionals and advanced students, Pointers on C provides a comprehensive resource for those needing in-depth coverage of the C programming language. An extensive explanation of pointer basics and a thorough exploration of their advanced features allows programmers to incorporate the power of pointers into their C programs. Complete coverage, detailed explanations of C programming idioms, and thorough discussion of advanced topics makes Pointers on C a valuable tutorial and reference for students and professionals alike. Features and Benefits Provides complete background information needed for a thorough understanding of C. Covers pointers thoroughly, including syntax, techniques for their effective use and common programming idioms in which they appear. Compares different methods for implementing common abstract data structures. Offers an easy, conversant writing style to clearly explain difficult topics, and contains numerous illustrations and diagrams to help visualize complex concepts. Includes Programming Tips, discussing efficiency, portability, and software engineering issues, and warns of common pitfalls using Caution! Sections. Describes every function on the standard C library. For those who need an up-to-date ANSI overview of the C programming language, this book would be an excellent introduction. Pointers are usually a stumbling block for those programming C initially, but the author does an excellent job of detailing the use of pointers in this book. The use of pointers dominates the entire book, and after studying it, readers will have a thorough, practical knowledge of how to take advantage of the performance power of C language, due mostly to its use of pointers. For those programming in a commercial/business environment, where coding practices are strictly enforced, this book would be a good desk reference, as the author includes discussion of sound programming practices throughout the book. The book would also serve well those involved in teaching C in the classroom, as it contains many exercises, ranging from very easy to highly advanced. And for those readers frequently facing legacy code in C, such as scientific programmers, the author cites the differences between the older "Kernighan-Ritchie" C, and the more modern ANSI C, the latter being used in the book. These differences are indicated in the margin of the book, and are of an enormous help for those who must take older code and get it to run on more up-to-date compilers. The author also endeavors to organize the C code for those who are going on to study C++ and the accompanying object-oriented approach to programming. In addition, he emphasizes how to write C code so as to make it more portable. For those writing commercial applications in C that must be used on different platforms, this is a very important issue of course. Particularly well-written is the author's discussion on the storage class of a variable, noting, for those such as I who are pre-disposed to using recursion, that the formal parameters to a function cannot be static if recursion is to be supported. The book is full of examples such as this that give readers insight on the workings of C that fit their particular programming style. He does discuss `goto' statements in relation to function scope and in C statement structures, but, thankfully, recommends such statements never be used. He gives an interesting counterexample to those who say that goto statements must be used to break out of nested loops. Also, the author discusses the difference between L- and R-values, and this is not usually included in beginning books on C. Dynamic memory allocation has been at times a somewhat painful aspect of programming in C, but the author shows how to do straightforwardly in the book. Having a book like this that is predominantly about pointers is quite a blessing for those who are inexperienced with them or for more experienced programmers who are still uncomfortable with their use. It is not uncommon these days to have to write programs in one's professional work that involve triple pointers or even quadruple pointers. In addition, for embedded systems programming, the use of pointer arithmetic is almost mandatory. This also is true for writing applications in cryptography using C. The author does pay careful attention to pointer arithmetic in the book. The performance pay-off for using pointers is undeniable, and so a thorough knowledge of their use and pit-falls is of upmost importance for those C programmers who are involved in writing performance-sensitive applications. The author discusses in detail what can happen when pointers are misused and gives many examples of what to avoid and good hints for the proper use of pointers. He recommends against the use of the `null' pointer in array searching, and recommends a strategy for circumventing them. Some very helpful diagrams are given for explaining pointer expressions. In addition, the author gives helpful hints on when to use pointers and not subscripts when manipulating arrays in C. The performance issues involved in this are extremely important in scientific programming using C. The author gives a very interesting example of the differences in performance using pointers involving a program to copy the contents of one array into another. Arrays of pointers, useful in data mining applications, are also given ample treatment in this book, and the author addresses the issue of when to use a matrix instead of an array of pointers. The author also gives an effective presentation of functions in C, particularly the construction of recursive functions, and he employs some useful diagrams to illustrate how the variables in a recursive function call change on the stack. The performance hit experienced by using recursion versus iterative loops is discussed in a standard way via the Fibonacci series. Those readers raised in the functional programming paradigm will want to pay notice these performance issues when using C to do recursion. Along the same lines, the author shows how to implement functions with variable argument lists in C. This is another topic that is frequently passed over in beginning books on C. The author's treatment of data structures in C is also very nicely done, and he includes again a topic not usually treated in beginning books on C, namely the concept of a self-referential data structure. These are very important in applications in artificial intelligence, and the author shows how to implement them in C using a data structure that points to itself. This leads to a discussion of incomplete declarations. Very helpful diagrams are used again to discuss how to access members of data structures and how to point to data structures. Bit fields, so often used in embedded system applications, are also given a detailed treatment.


网友评论

  • 比较糟糕,没有目录。 免费下http://vdisk.weibo.com/s/zGmqTKnwpIZW0
  • 字体清晰可复制,页数齐全,感谢分享
  • 挺不错的, 可惜页眉有水印.
  • 好书,感谢分享!
  • 手里一本中文版,有时候感觉不对的时候就找出英文的对照一下。。。
  • 好资源, 好资源!!!
  • 东西还可以,挺有用的
  • pretty good, this version is regarded as reference to the chinease version, sometime, interpretation isn't accuracy enough, so it is good choice that we can make it to be an supplement to CH version. I also think the book by foreigners is easier to understand than by chineses.
  • 不错,很清晰的文字版,是看完中文版的继续来看遍英文版,很多翻译不到位。
  • 非常棒的文字版,非影印版哦~~~~非常清晰,代码可复制~~棒~~~~
  • 文字版阅读起来方便一些,,也清楚一些,中文版的实在不忍去看,毕竟有些翻译不是很到位,有歧义
  • 英文的文字版,有书签蛮方便,调程序可以直接复制了……
  • 经典的c语言进阶书籍!
  • 好书,配合中文版阅读。
  • 认真学习中,和中文版一起看会好很多
  • 很好,完整文字版。值得下载
  • 不胜感激,谢谢楼主,谢谢csdn
  • 第一次打五分,英文版还是最能还原出作者意思的; 徐波那一个中文翻译还是有不少错误,看着感觉不对就用这个额英文版哈哈
  • 很不错的一本书
  • 很好的资源,谢谢共享!!!
  • 好书,配合中文版阅读。
  • 英文文字版,非常清晰,感谢分享!!
  • PDF 是文字版的,可以复制和添加注释,非常棒,谢谢 LZ。中文实体书,英文电子书,边对比边看
  • 不错,非常清晰
  • 很好的资源,原汁原味的英文,结合着中文版看基本无障碍。