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
序第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
· · · · · · (收起)
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 include arguments, as in
double atof();
that too is taken to mean that nothing is to be assumed about the arguments of atof; all parameter checking is turned off. This special meaning of the empty argument list is intended to permit older C programs to compile with new compilers. But it’s a bad idea to use it with new programs. If the function takes arguments, declare them; if it takes no arguments, use void. (查看原文)
0 有用 Luffy Lee 2009-04-10 15:34:48
题目很经典,但我还没做完
1 有用 御宅暴君 2015-10-22 18:22:11
很经典,但不适合入门。
0 有用 simple 2012-02-29 22:12:35
第三遍读
0 有用 Gakki㍿ 2013-01-21 01:38:27
重读一遍,感触颇多。。。
2 有用 Gosin 2009-11-07 10:16:41
C语言教材里少见的薄,但内容很丰富,因为废话少,或者说讲解方法并不是那种中国式的,所以刚读起来会有些晦涩,甚至觉得它讲得不明白,但只要静下心来,刚开始不妨囫囵吞枣,同时先照着书写代码,慢慢理解。另外说下代码风格不错,值得学习。逐渐就会开朗,确实是本经典的教材。建议配合答案书使用。另外推荐国产IDE——C-Free,支持许多开源编译器,配置简单,无需关心太多其它问题,只管写代码即可(不用陷入无止境的... C语言教材里少见的薄,但内容很丰富,因为废话少,或者说讲解方法并不是那种中国式的,所以刚读起来会有些晦涩,甚至觉得它讲得不明白,但只要静下心来,刚开始不妨囫囵吞枣,同时先照着书写代码,慢慢理解。另外说下代码风格不错,值得学习。逐渐就会开朗,确实是本经典的教材。建议配合答案书使用。另外推荐国产IDE——C-Free,支持许多开源编译器,配置简单,无需关心太多其它问题,只管写代码即可(不用陷入无止境的IDE孰优孰劣指正,还没开始学C时,看着IDE优劣之争就头大了……),非常适合新手使用。强烈推荐! (展开)
0 有用 jimmy 2023-03-10 07:34:04 上海
这些年每打开一本编程书翻上几页就会想起K&R,惜字如金是一种难得而可贵的品质。
0 有用 伯安 2022-09-02 13:19:16 上海
return 0;
0 有用 三月春晖 2021-08-30 13:21:32
用简单通俗的语言讲解C语言 200多页的篇幅 简单又深刻 致敬作者
0 有用 Elf 2021-08-03 10:00:07
简洁明了深刻。
0 有用 traveller 2021-06-30 23:23:14
对于有编程基础而又不需要深入细节,仅希望掌握语法的人来说,本书绝佳