gogogo
Syndetics cover image
Image from Syndetics

A book on C : programming in C / Al Kelley and Ira Pohl

By: Contributor(s): Material type: TextTextSeries: The Benjamin/Cummings series in computer sciencePublication details: Redwood City, Calif. Benjamin/Cummings Pub. Co c1990.Edition: 2nd edDescription: xv, 519 p. 24 cmISBN:
  • 0805300600
Subject(s): DDC classification:
  • 005.133 KEL
Holdings
Item type Current library Call number Copy number Status Date due Barcode
Standard Loan Moylish Library Main Collection 005.133 KEL (Browse shelf(Opens below)) 2 Available 39002000194622

Enhanced descriptions from Syndetics:

The authors provide clear examples and thorough explanations of every feature in the C language. They teach C vis-a-vis the UNIX operating system. A reference and tutorial to the C programming language. Annotation copyrighted by Book News, Inc., Portland, OR

Table of contents provided by Syndetics

  • Preface
  • Starting from Zero
  • Why C?
  • ANSI C Standard
  • From C to C++
  • From C and C++ to Java
  • 1 An Overview of C
  • Programming and Preparation
  • Program Output
  • Variables, Expressions, and Assignment
  • The Use of #define and #include
  • The Use of printf() and scanf()
  • Flow of Control
  • Functions
  • Call-by-Value
  • Arrays, Strings, and Pointers
  • Arrays
  • Strings
  • Pointers
  • Files
  • Operating System Considerations
  • Writing and Running a C Program
  • Interrupting a Program
  • Typing an End-of-file Signal
  • Redirection of the Input and the Output
  • 2 Lexical Elements, Operators, and the C System
  • Characters and Lexical Elements
  • Syntax Rules
  • Comments
  • Keywords
  • Identifiers
  • Constants
  • String Constants
  • Operators and Punctuators
  • Precedence and Associativity of Operators
  • Increment and Decrement Operators
  • Assignment Operators
  • An Example: Computing Powers of 2
  • The C System
  • The Preprocessor
  • The Standard Library
  • 3 The Fundamental Data Types
  • Declarations, Expressions, and Assignment
  • The Fundamental Data Types
  • Characters and the Data Type char
  • The Data Type int
  • The Integral Types short, long, and unsigned
  • The Floating Types
  • The Use of typedef
  • The sizeof Operator
  • The Use of getchar() and putchar()
  • Mathematical Functions
  • The Use of abs() and fabs()
  • UNIX and the Mathematics Library
  • Conversions and Casts
  • The Integral Promotions
  • The Usual Arithmetic Conversions
  • Casts
  • Hexadecimal and Octal Constants
  • 4 Flow of Control
  • Relational, Equality, and Logical Operators
  • Relational Operators and Expressions
  • Equality Operators and Expressions
  • Logical Operators and Expressions
  • Short-circuit Evaluation
  • The Compound Statement
  • The Expression and Empty Statement
  • The if and the if-else Statements
  • The while Statement
  • The for Statement
  • An Example: Boolean Variables
  • The Comma Operator
  • The do Statement
  • An Example: Fibonacci Numbers
  • The goto Statement
  • The break and continue Statements
  • The switch Statement
  • The Conditional Operator
  • 5 Functions
  • Function Definition
  • The return Statement
  • Function Prototypes
  • Function Prototypes in C++
  • An Example: Creating a Table of Powers
  • Function Declarations from the Compiler's Viewpoint
  • Limitations
  • An Alternate Style for Function Definition Order
  • Function Invocation and Call-by-Value
  • Developing a Large Program
  • What Constitutes a Large Program?
  • Using Assertions
  • Scope Rules
  • Parallel and Nested Blocks
  • Using a Block for Debugging
  • Storage Classes
  • The Storage Class auto
  • The Storage Class extern
  • The Storage Class register
  • The Storage Class static
  • Static External Variables
  • Default Initialization
  • Recursion
  • Efficiency Considerations
  • An Example: the Towers of Hanoi
  • 6 Arrays, Pointers, and Strings
  • One-dimensional Arrays
  • Initialization
  • Subscripting
  • Pointers
  • Call-by-Reference
  • The Relationship Between Arrays and Pointers
  • Pointer Arithmetic and Element Size
  • Arrays as Function Arguments
  • An Example: Bubble Sort
  • Dynamic Memory Allocation With calloc() and malloc()
  • Offsetting the Pointer
  • An Example: Merge and Merge Sort
  • Strings
  • String-Handling Functions in the Standard Library
  • Multidimensional Arrays
  • Two-dimensional Arrays
  • The Storage Mapping Function
  • Formal Parameter Declarations
  • Three-dimensional Arrays
  • Initialization
  • The Use of typedef
  • Arrays of Pointers
  • Arguments to main()
  • Ragged Arrays
  • Functions as Arguments
  • Functions as Formal Parameters in Function Prototypes
  • An Example: Using BiSection to Find the Root of a Function
  • The Kepler Equation
  • Arrays of Pointers to Function
  • The Type Qualifiers const and volatile
  • 7 Bitwise Operators and Enumeration Types
  • Bitwise Operators and Expressions
  • Bitwise Complement
  • Two's Complement
  • Bitwise Binary Logical Operators
  • Left and Right Shift Operators
  • Masks
  • Software Tools: Printing an int Bitwise
  • Packing and Unpacking
  • Multibyte Character Constants
  • Enumeration Types
  • An Example: the Game of Paper, Rock, Scissors
  • 8 The Preprocessor
  • The Use of #include
  • The Use of #define
  • Syntactic Sugar
  • Macros with Arguments
  • The Type Definitions and Macros in stddef.h
  • An Example: Sorting with qsort()
  • An Example: Macros with Arguments
  • The Macros in stdio.h and ctype.h
  • Conditional Compilation
  • The Predefined Macros
  • The Operators # and ##
  • The assert() Macro
  • The Use of #error and #pragma
  • Line Numbers
  • Corresponding Functions
  • An Example: Quicksort
  • 9 Structures and Unions
  • Structures
  • Accessing Members of a Structure
  • Operator Precedence and Associativity: A Final Look
  • Using Structures with Functions
  • Initialization of Structures
  • An Example: Playing Poker
  • Unions
  • Bit Fields
  • An Example: Accessing Bits and Bytes
  • The ADT Stack
  • 10 Structures and List Processing
  • Self-referential Structures
  • Linear Linked Lists
  • Storage Allocation
  • List Operations
  • Some List Processing Functions
  • Insertion
  • Deletion
  • Stacks
  • An Example: Polish Notation and Stack Evaluation
  • Queues
  • Binary Trees
  • Binary Tree Traversal
  • Creating Trees
  • General Linked Lists
  • Traversal
  • The Use of calloc() and Building Trees
  • 11 Input/Output and the Operating System
  • The Output Function printf()
  • The Input Function scanf()
  • The Functions fprintf(), fscanf(), sprintf(), and sscanf()
  • The Functions fopen() and fclose()
  • An Example: Double Spacing a File
  • Using Temporary Files and Graceful Functions
  • Accessing a File Randomly
  • File Descriptor Input/Output
  • File Access Permissions
  • Executing Commands from Within a C Program
  • Using Pipes from Within a C Program
  • Environment Variables
  • The C Compiler
  • Using the Profiler
  • Libraries
  • How to Time C Code
  • The Use of make
  • The Use of touch
  • Other Useful Tools
  • 12 Advanced Applications
  • Creating a Concurrent Process with fork()
  • Overlaying a Process: the exec...() Family
  • Using the spawn...() Family
  • Interprocess Communication Using pipe()
  • Signals
  • An Example: the Dining Philosophers
  • Dynamic Allocation of Matrices
  • Why Arrays of Arrays Are Inadequate
  • Building Matrices with Arrays of Pointers
  • Adjusting the Subscript Range
  • Allocating All the Memory at Once
  • Returning the Status
  • 13 Moving from C to C++
  • Output
  • Input
  • Functions
  • Classes and Abstract Data Types
  • Overloading
  • Constructors and Destructors
  • Object-oriented Programming and Inheritance
  • Polymorphism
  • Templates
  • C++ Exceptions
  • Benefits of Object-oriented Programming
  • 14 Moving from C to Java
  • Output
  • Variables and Types
  • Classes and Abstract Data Types
  • Overloading
  • Construction and Destruction of Class Types
  • Object-oriented Programming and Inheritance
  • Polymorphism and Overriding Methods
  • Applets
  • Java Exceptions
  • Benefits of Java and OOP
  • Appendix A The Standard Library
  • Diagnostics
  • Character Handling
  • Testing a Character
  • Mapping a Character
  • Errors
  • Floating Limits
  • Integral Limits
  • Localization
  • Mathematics
  • Nonlocal Jumps
  • Signal Handling
  • Variable Arguments
  • Common Definitions
  • Input/Output
  • Opening, Closing, and Conditioning a File
  • Accessing the File Position Indicator
  • Error Handling
  • Character Input/Output
  • Formatted Input/Output
  • Direct Input/Output
  • Removing or Renaming a File
  • A.13 General Utilities
  • Dynamic Allocation of Memory
  • Searching and Sorting
  • Pseudo Random-Number Generator
  • Communicating with the Environment
  • Integer Arithmetic
  • String Conversion
  • Multibyte Character Functions
  • Multibyte String Functions
  • Leaving the Program
  • Memory and String Handling
  • Memory-Handling Functions
  • String-Handling Functions
  • Date and Time
  • Accessing the Clock
  • Accessing the Time
  • Miscellaneous
  • File Access
  • Using File Descriptors
  • Creating a Concurrent Process
  • Overlaying a Process
  • Interprocess Communication
  • Suspending Program Execution
  • Appendix B Language Syntax
  • Program
  • Function Definition
  • Declaration
  • Statement
  • Expression
  • Constant
  • String Literal
  • Preprocessor
  • Appendix C ANSI C Compared to Traditional C
  • Types
  • Constants
  • Declarations
  • Initializations
  • Expressions
  • Functions
  • Conversions
  • Array Pointers
  • Structures and Unions
  • Preprocessor
  • Header Files
  • Miscellaneous
  • Appendix D ASCII Character Codes
  • Appendix E Operator Precedence and Associativity
  • Index

Powered by Koha