وبلاگ بلیان

The C programming language

معرفی کتاب «The C programming language» نوشتهٔ Kernighan, Brian W., Ritchie, Dennis M. در سال 2016. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «The C programming language» در دستهٔ بدون دسته‌بندی قرار دارد.

This updated edition covers ANSI C. The authors present the complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C's rich set of operators, economy of expression, improved control flow, and data structures. The 2/E has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. For years, C programmers have let K&R guide them to building well-structured and efficient programs. Now this same help is available to those working with ANSI compilers. Includes detailed coverage of the C language plus the official C language reference manual for at-a-glance help with syntax notation, declarations, ANSI changes, scope rules, and the list goes on and on. Preface Preface to the first edition Chapter 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.5.1 File Copying 1.5.2 Character Counting 1.5.3 Line Counting 1.5.4 Word Counting 1.6 Arrays 1.7 Functions 1.8 Arguments - Call by Value 1.9 Character Arrays 1.10 External Variables and Scope Chapter 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 labels Chapter 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 Preprocessor 4.11.1 File Inclusion 4.11.2 Macro Substitution 4.11.3 Conditional Inclusion Chapter 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 Declarations Chapter 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-fields Chapter 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 Functions 7.8.1 String Operations 7.8.2 Character Class Testing and Conversion 7.8.3 Ungetc 7.8.4 Command Execution 7.8.5 Storage Management 7.8.6 Mathematical Functions 7.8.7 Random Number generation Chapter 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 - Lseek 8.5 Example - An implementation of Fopen and Getc 8.6 Example - Listing Directories 8.7 Example - A Storage Allocator Appendix A - Reference Manual A.1 Introduction A.2 Lexical Conventions A.2.1 Tokens A.2.2 Comments A.2.3 Identifiers A.2.4 Keywords A.2.5 Constants A.2.5.1 Integer Constants A.2.5.2 Character Constants A.2.5.3 Floating Constants A2.5.4 Enumeration Constants A.2.6 String Literals A.3 Syntax Notation A.4 Meaning of Identifiers A.4.1 Storage Class A.4.2 Basic Types A.4.3 Derived types A.4.4 Type Qualifiers A.5 Objects and Lvalues A.6 Conversions A.6.1 Integral Promotion A.6.2 Integral Conversions A.6.3 Integer and Floating A.6.4 Floating Types A.6.5 Arithmetic Conversions A.6.6 Pointers and Integers A.6.7 Void A.6.8 Pointers to Void A.7 Expressions A.7.1 Pointer Conversion A.7.2 Primary Expressions A.7.3 Postfix Expressions A.7.3.1 Array References A.7.3.2 Function Calls A.7.3.3 Structure References A.7.3.4 Postfix Incrementation A.7.4 Unary Operators A.7.4.1 Prefix Incrementation Operators A.7.4.2 Address Operator A.7.4.3 Indirection Operator A.7.4.4 Unary Plus Operator A.7.4.5 Unary Minus Operator A.7.4.6 One's Complement Operator A.7.4.7 Logical Negation Operator A.7.4.8 Sizeof Operator A.7.5 Casts A.7.6 Multiplicative Operators A.7.7 Additive Operators A.7.8 Shift Operators A.7.9 Relational Operators A.7.10 Equality Operators A.7.11 Bitwise AND Operator A.7.12 Bitwise Exclusive OR Operator A.7.13 Bitwise Inclusive OR Operator A.7.14 Logical AND Operator A.7.15 Logical OR Operator A.7.16 Conditional Operator A.7.17 Assignment Expressions A.7.18 Comma Operator A.7.19 Constant Expressions A.8 Declarations A.8.1 Storage Class Specifiers A.8.2 Type Specifiers A.8.3 Structure and Union Declarations A.8.4 Enumerations A.8.5 Declarators A.8.6 Meaning of Declarators A.8.6.1 Pointer Declarators A.8.6.2 Array Declarators A.8.6.3 Function Declarators A.8.7 Initialization A.8.8 Type names A.8.9 Typedef A.8.10 Type Equivalence A.9 Statements A.9.1 Labeled Statements A.9.2 Expression Statement A.9.3 Compound Statement A.9.4 Selection Statements A.9.5 Iteration Statements A.9.6 Jump statements A.10 External Declarations A.10.1 Function Definitions A.10.2 External Declarations A.11 Scope and Linkage A.11.1 Lexical Scope A.11.2 Linkage A.12 Preprocessing A.12.1 Trigraph Sequences A.12.2 Line Splicing A.12.3 Macro Definition and Expansion A.12.4 File Inclusion A.12.5 Conditional Compilation A.12.6 Line Control A.12.7 Error Generation A.12.8 Pragmas A.12.9 Null directive A.12.10 Predefined names A.13 Grammar Appendix B - Standard Library B.1 Input and Output: B.1.1 File Operations B.1.2 Formatted Output B.1.3 Formatted Input B.1.4 Character Input and Output Functions B.1.5 Direct Input and Output Functions B.1.6 File Positioning Functions B.1.7 Error Functions B.2 Character Class Tests: B.3 String Functions: B.4 Mathematical Functions: B.5 Utility Functions: B.6 Diagnostics: B.7 Variable Argument Lists: B.8 Non-local Jumps: B.9 Signals: B.10 Date and Time Functions: B.11 Implementation-defined Limits: and Appendix C - Summary of Changes

This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard.

From the Preface:

We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form.

As we said in the first preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way. We hope that this book will help you to learn C and use it well.


The original authors of C and the first UNIX system present this concise and powerful guide to ANSI standard C programming. This version, building on Kerninghan and Ritchie's classic The C Programming Language, brings readers up-to-date with the finalized ANSI standard for C while teaching users how to take advantage of noted C features like economy of expression, its full set of operators and more. One reader claimed "Just about every C programmer I respect learned C from this book," while another raved that this book is the "Bible of C." This book is regarded by just about anyone in the C field as the canonical work on the C language and is essential reading for C programmers.

The definitive reference guide to C programming from K&R for writing good code that works and is easy to modify Learn how to program in C from the developers of C, Brian Kernighan and Dennis Ritchie. Intended for those with at least some experience with one other language (even if you are a novice), this book contains a tutorial introduction to get new users started as soon as possible and separate chapters on each major feature: Types, operators, and expressions Control flow Functions and program structure Pointers and arrays Structures Input and output This second edition of The C Programming Language describes C as defined by the ANSI standard and includes a reference manual that conveys the essentials of the standard in a smaller space for easy comprehension for programmers.'K&R is one of my favorite books. The style of the tutorial chapters is so deceptively light and simple and the manual so crisp. Much of C's reputation of simplicity comes from the clarity and great little examples from this book. My 1978 copy has lost its cover and my K&R2 is somewhat dog eared. Above all, K&R is a useful book.'Bjarne Stroustrup, designer and original implementer of C++, and author of The C++ Programming Language Introduces the features of the C programming language, discusses data types, variables, operators, control flow, functions, pointers, arrays, and structures, and looks at the UNIX system interface
دانلود کتاب The C programming language