The Second Edition of this useful book presents both computer science theory and C-language syntax with a principle-before-implementation approach. Forouzan and Gilberg continue to present a clear organizational structure, supplemented by easy-to-follow figures, charts, and tables. Always readable, the book develops programs and functions consistently and clearly, based on the authors' extensive academic and industry experience. The first half of the book builds a firm understanding of expressions, including pointers only to the extent necessary to cover pass-by-reference and arrays. Features: Programming principles are fully introduced before details of the C language are implemented. Principles of structured programming and software engineering are consistently emphasized. "Review Questions" have been included at the end of each section. End-of-chapter projects are included in every chapter. Table Of Contents: Introduction to Computers Introduction to the C Language Structure of a C Program Functions Selection-Making Decisions Repetition Text Files Arrays Pointers Pointer Applications Strings Derived Types - Enumerated, Structure, and Union Binary Files Linked Lists