C程序设计语言

Brian W. Kernighan

出版时间

2006-07-31

ISBN

9787111196266

评分

★★★★★
AI导读
核心看点
  • C语言设计者亲笔,权威经典教材
  • 简洁高效,代码示例均为UNIX经典
  • 深入讲解指针、内存等核心编程思想
适合谁读
  • 具备基础编程经验的开发者
  • 追求代码简洁与底层理解的程序员
  • 希望深入理解C语言设计哲学的读者
读前提醒
  • 非零基础入门书,建议先学基础语法
  • 内容精炼晦涩,需静心反复研读体会
  • 务必动手编写代码,配合Linux环境练习
读者共识
  • 薄而精悍,被誉为技术与艺术的统一
  • 习题极具价值,是检验功力的试金石
  • 虽显老旧,但编程思想永不过时经典

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • ""相对于#define语句来说,它的优势在于常量值可以自动生成。尽管可以声明enum类型的变量,但编译器不检查这种类型的变量中存储的值是否为该枚举的有效值。不过,枚举变量提供这种检查,因此枚举比#define更具优势。此外,调试程序可以以符号形式打印出枚举变量的值";"
  • "If a name that has not been previously declared occurs in an expression and is followed by a left parenthesis, it is declared by context to be a function name, the function is assumed to return an int, and nothing is assumed about its arguments. Furthermore, if a function declaration does not includ"
  • "float类型通常是32位,它至少有6位有效数字,取值范围一般在10^-38 ~ 10 ^ 38之间"
  • "BCPL and B are "typeless" languages. By contrast, C provides a variety of data types. The fundamental types are characters, and integers and floating-point numbers of several sizes. In addition, there is a hierarchy of derived data types created with pointers, arrays, structures, and unions. Express"
  • "Right shifting a signed quantity will fill sign bits ("arithmetic shift") or on some machines ans with 0-bits ("logical shift") on others"
  • "Declaring the argument x to be unsigned ensures that when it is right-shifted, vacated bits will be filled with zeros, not sign bits, regardless of the machine the program run on."
  • "char *fgets(char *line, int maxline, FILE *fp) fgets reads the next input line (including the newline) from file fp into the character array line; at most maxline-1 characters will be read. The resulting line is terminated with '\0'. Normally fgets returns line; on end of file or error it returns NU"
  • "void *realloc(void *p, size_t size) realloc changes the size of the object pointed to by p to size. The contents will be unchanged up to the minimum of the old and new sizes. If the new size is larger, the new space is uninitialized. realloc returns a pointer to the new space, or NULL if the request"
作者简介
Brian W.Kernighan,贝尔实验室计算科学研究中心高级研究人员,著名的计算机科学家。他参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的著作,包括《The Elements of Programming Style》、《The Practice of Programming》、《The UNIX Programming Environment》、《The AWK Language》、《Software Tools》等。
目录
序第1版序IntroductionChapter 1. A Tutorial Introduction 1.1 Getting Started 1.2 Variables and Arithmetic Expressions 1.3 The For Statement 1.4 Symbolic Constants 1.5 Character Input and Output 1.6 Arrays 1.7 Functions 1.8 Arguments--Call by Value 1.9 Character Arrays 1.10 External Variables and ScopeChapter 2. Types, Operators, and Expressions 2.1 Variable Names 2.2 Data Types and Sizes 2.3 Constants 2.4 Declarations 2.5 Arithmetic Operators 2.6 Relational and Logical Operators 2.7 Type Conversions 2.8 Increment and Decrement Operators 2.9 Bitwise Operators 2.10 Assignment Operators and Expressions 2.11 Conditional Expressions 2.12 Precedence and Order of Evaluation Chapter 3. Control Flow 3.1 Statements and Blocks 3.2 If-Else 3.3 Else-If 3.4 Switch 3.5 Loops--While and For 3.6 Loops-Do-while 3.7 Break and Continue 3.8 Goto and LabelsChapter 4. Functions and Program Structure 4.1 Basics of Functions 4.2 Functions Returning Non-integers 4.3 External Variables 4.4 Scope Rules 4.5 Header Files 4.6 Static Variables 4.7 Register Variables 4.8 Block Structure 4.9 Initialization 4.10 Recursion 4.11 The C PreprocessorChapter 5. Pointers and Arrays 5.1 Pointers and Addresses 5.2 Pointers and Function Arguments 5.3 Pointers and Arrays 5.4 Address Arithmetic 5.5 Character Pointers and Functions 5.6 Pointer Arrays; Pointers to Pointers 5.7 Multi-dimensional Arrays 5.8 Initialization of Pointer Arrays 5.9 Pointers vs. Multi-dimensional Arrays 5.10 Command-line Arguments 5.11 Pointers to Functions 5.12 Complicated DeclarationsChapter 6. Structures 6.1 Basics of Structures 6.2 Structures and Functions 6.3 Arrays of Structures 6.4 Pointers to Structures 6.5 Self-referential Structures 6.6 Table Lookup 6.7 Typedef 6.8 Unions 6.9 Bit-fieldsChapter 7. Input and Output 7.1 Standard Input and Output 7.2 Formatted Output--Printf 7.3 Variable-length Argument Lists 7.4 Formatted Input-Scanf 7.5 File Access 7.6 Error Handling--Stderr and Exit 7.7 Line Input and Output 7.8 Miscellaneous FunctionsChapter 8. The UNIX System Interface 8.1 File Descriptors 8.2 Low Level I/O-Read and Write 8.3 Open, Creat, Close, Unlink 8.4 Random Access--Lscek 8.5 Example--An Implementation of Fopen and Getc 8.6 Example--Listing Directories 8.7 Example--A Storage AllocatorAppendix A. Reference Marital AI Introduction A2 Lexical Conventions A3 Syntax Notation A4 Meaning of Identifiers A5 Objects and Lvalues A6 Conversions A7 Expressions A8 Declarations A9 Statements AI0 External Declarations All Scopeand Linkage A12 Preprocessing A13 GrammarAppendix B. Standard Library B1 Input and Output: <stdio.h> B2 Character Class Tests: <ctype.h> B3 String Functions: <string.h> B4 Mathematical Functions: <math.h> B5 Utility Functions: <stdlib.h> B6 Diagnostics: <assert.h> B7 Variable Argument Lists: <stdarg.h> B8 Non-local Jumps: <setjmp.h> B9 Signals: <signal.h> B10 Date and Time Functions: <time.h> BI 1 Implementation-defined Limits: <limits.h> and <float.h>Appendix C. Summary of ChangesIndex
用户评论
终于拜读完毕,购书至今四年零三个月。
masterpiece
神作
技术与艺术的完美统一
C语言教材里少见的薄,但内容很丰富,因为废话少,或者说讲解方法并不是那种中国式的,所以刚读起来会有些晦涩,甚至觉得它讲得不明白,但只要静下心来,刚开始不妨囫囵吞枣,同时先照着书写代码,慢慢理解。另外说下代码风格不错,值得学习。逐渐就会开朗,确实是本经典的教材。建议配合答案书使用。另外推荐国产IDE——C-Free,支持许多开源编译器,配置简单,无需关心太多其它问题,只管写代码即可(不用陷入无止境的IDE孰优孰劣指正,还没开始学C时,看着IDE优劣之争就头大了……),非常适合新手使用。强烈推荐!
用简单通俗的语言讲解C语言 200多页的篇幅 简单又深刻 致敬作者
简洁明了深刻。
对于有编程基础而又不需要深入细节,仅希望掌握语法的人来说,本书绝佳
基于C89写成的 有些函数的调用和写法确实过时了 我个人觉得这本书更像是一本 通过例子和练习 来讲解C语言的编程风格和编程技巧的书 每一道题都很经典。 如果是0基础的学C 推荐C primer plus或C programming:a modern approach
C开山鼻祖
下载
收藏