This highly readable text provides an introductory course on programming in C.The authors emphasize the importance of good programming practice and the use of sound software engineering principles to develop programs which are readable, maintainable, portable, and efficient. "Outstanding textbook for novice C users" Computer Book Reviews
Rezensionen / Stimmen
"Rarely does an introductory book on a programming language balance the basic and the advanced so well." - Computer Reviews
"Outstanding textbook for novice C users." - Computer Book Review
"Excellent for a systematic person who wants a running start in C." - UnixWorld
Auflage
Sprache
Verlagsort
Zielgruppe
Für höhere Schule und Studium
Für Beruf und Forschung
Professional/practitioner
Editions-Typ
Illustrationen
191
191 s/w Abbildungen
XXVIII, 498 p. 191 illus.
Maße
Höhe: 254 mm
Breite: 178 mm
Dicke: 29 mm
Gewicht
ISBN-13
978-0-387-94675-7 (9780387946757)
DOI
10.1007/978-1-4612-4020-4
Schweitzer Klassifikation
1: Introduction to Programming.- 1.1 High-Level Programming Languages.- 1.2 History of C.- 1.3 ANSI and ISO Standards.- 1.4 Nature of C.- 2: Introduction to Software Engineering.- 2.1 Introduction.- 2.2 Stages of Software Production.- 2.3 Product Specification.- 2.4 Architectural Design.- 2.5 Project Planning.- 2.6 Detailed Design.- 2.7 Coding.- 2.8 Debugging.- 2.9 Testing.- 2.10 Maintenance.- 2.11 The Bridge Metaphor.- 3: C Essentials.- 3.1 Program Development.- 3.2 Functions.- 3.3 Variables and Constants.- 3.4 Names.- 3.5 Expressions.- 3.6 Formatting Source Files.- 3.7 The main() Function.- 3.8 The printf() Function.- 3.9 The scanf() Function.- 3.10 The Preprocessor.- 3.11 Exercises.- 4: Scalar Data Types.- 4.1 Declarations.- 4.2 Different Kinds of Integer Constants.- 4.3 Floating-Point Types.- 4.4 Scientific Notation.- 4.5 Initialization.- 4.6 Mixing Types.- 4.7 Explicit Conversions-Casts.- 4.8 Enumeration Types.- 4.9 The void Data Type.- 4.10 Typedefs.- 4.11 Finding the Address of an Object.- 4.12 Introduction to Pointers.- 4.13 Exercises.- 5: Control Flow.- 5.1 Conditional Branching.- 5.2 The switch Statement.- 5.3 Looping.- 5.4 Nested Loops.- 5.5 A Simple Calculator Program.- 5.6 The break and continue Statements.- 5.7 The goto Statement.- 5.8 Infinite Loops.- 5.9 Exercises.- 6: Operators and Expressions.- 6.1 Precedence and Associativity.- 6.2 Unary Plus and Minus Operators.- 6.3 Binary Arithmetic Operators.- 6.4 Arithmetic Assignment Operators.- 6.5 Increment and Decrement Operators.- 6.6 Comma Operator.- 6.7 Relational Operators.- 6.8 Logical Operators.- 6.9 Bit-Manipulation Operators.- 6.10 Bitwise Assignment Operators.- 6.11 Cast Operator.- 6.12 sizeof Operator.- 6.13 Conditional Operator (?:).- 6.14 Memory Operators.- 6.15 Exercises.- 7: Arrays andPointers.- 7.1 Declaring an Array.- 7.2 How Arrays Are Stored in Memory.- 7.3 Initializing Arrays.- 7.4 Example: Encryption and Decryption.- 7.5 Pointer Arithmetic.- 7.6 Passing Pointers as Function Arguments.- 7.7 Accessing Array Elements Through Pointers.- 7.8 Passing Arrays as Function Arguments.- 7.9 Sorting Algorithms.- 7.10 Strings.- 7.11 Multidimensional Arrays.- 7.12 Arrays of Pointers.- 7.13 Pointers to Pointers.- 7.14 Exercises.- 8: Storage Classes.- 8.1 Fixed vs. Automatic Duration.- 8.2 Scope.- 8.3 Global Variables.- 8.4 The register Specifier.- 8.5 The const Storage-Class Modifier.- 8.6 The volatile Storage-Class Modifier.- 8.7 Summary of Storage Classes.- 8.8 Dynamic Memory Allocation.- 8.9 Exercises.- 9: Structures and Unions.- 9.1 Structures.- 9.2 Linked Lists.- 9.3 Unions.- 9.4 enum Declarations.- 9.5 Exercises.- 10: Functions.- 10.1 Passing Arguments.- 10.2 Declarations and Calls.- 10.3 Pointers to Functions.- 10.4 Recursion.- 10.5 The main() Function.- 10.6 Complex Declarations.- 10.7 Exercises.- 11: The C Preprocessor.- 11.1 Macro Substitution.- 11.2 Conditional Compilation.- 11.3 Include Facility.- 11.4 Line Control.- 11.5 Exercises.- 12: Input and Output.- 12.1 Streams.- 12.2 Buffering.- 12.3 The Header File.- 12.4 Opening and Closing a File.- 12.5 Reading and Writing Data.- 12.6 Selecting an I/O Method.- 12.7 Unbuffered I/O.- 12.8 Random Access.- 12.9 Exercises.- 13: Software Engineering-A Case Study.- 13.1 Style Review.- 13.2 Product Specification.- 13.3 Architectural Design.- 13.4 Project Planning.- 13.5 Detailed Design.- 13.6 Software Tools for Software Production.- 13.7 Documentation.- 13.8 Exercises.- Appendices.- A: The ANSI Runtime Library.- A.1 Function Names.- A.2 Header Files.- A.3 Synopses.- A.4 Functions vs. Macros.- A.5 ErrorHandling.- A.6 Diagnostics.- A.7 Character Handling.- A.8 Setting Locale Parameters.- A.9 Mathematics.- A.10 Nonlocal Jumps.- A.11 Signal Handling.- A.12 Variable Argument Lists.- A.13 I/O Functions.- A.14 General Utilities.- A.15 String-Handling Functions.- A.16 Multibyte Character Functions.- A.17 Date and Time Functions.- B: Implementation Limits.- B.1 Translation Limits.- B.2 Numerical Limits.- C: Differences Between the ANSI and K&R Standards.- C.1 Source Translation Differences.- C.2 Data Type Differences.- C.3 Statement Differences.- C.4 Expression Differences.- C.5 Storage Class and Initialization Differences.- C.6 Preprocessor Differences.- D: Reserved Names.- E: ASCII Codes.