Programming in C

Why Rent from Knetbooks?

Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!

Stephen Kochan has been developing software with the C programming language for over 20 years. He is the author and coauthor of several bestselling titles on the C language, including Programming in C, Programming in ANSI C, Topics in C Programming and several Unix titles, including Exploring the Unix System, Unix Shell Programming and Unix System Security. Mr. Kochan's most recent title, Programming in Objective-C, is a tutorial on an object-oriented programming language that is based on C.

Introduction

Some Fundamentals.Programming

Higher-Level Languages

Operating Systems

Compiling Programs

Integrated Development Environments

Language Interpreters

Compiling and Running Your First Program

Compiling Your Program

Running Your Program

Understanding Your First Program

Displaying the Values of Variables

Comments

Exercises

Variables, Data Types, and Arithmetic Expressions

Working with Variables

Understanding Data Types and Constants

Working with Arithmetic Expressions

Combining Operations with Assignment: The Assignment Operators

Types Complex and Imaginary

Exercises

Program Looping

The for Statement

The while Statement

The do Statement

Exercises

Making Decisions

The if Statement

The switch Statement

Boolean Variables

The Conditional Operator

Exercises

Working with Arrays

Defining an Array

Initializing Arrays

Character Arrays

Multidimensional Arrays

Variable-Length Arrays

Exercises

Working with Functions

Defining a Function

Arguments and Local Variables

Returning Function Results

Functions Calling Functions Calling

Top-Down Programming

Functions and Arrays

Global Variables

Automatic and Static Variables

Recursive Functions

Exercises

Working with Structures

A Structure for Storing the Date

Functions and Structures

Initializing Structures

Arrays of Structures

Structures Containing Structures

Structures Containing Arrays

Structure Variants

Exercises

Character Strings

Arrays of Characters

Variable-Length Character Strings

Escape Characters

More on Constant Strings

Character Strings, Structures, and Arrays

Character Operations

Exercises

Pointers

Defining a Pointer Variable

Using Pointers in Expressions

Working with Pointers and Structures

The Keyword const and Pointers

Pointers and Functions

Pointers and Arrays

Operations on Pointers

Pointers to Functions

Pointers and Memory Addresses

Exercises

Operations on Bits

Bit Operators

Bit Fields

Exercises

The Preprocessor

The #define Statement

The #include Statement

Conditional Compilation

Exercises

More on Data Types

Enumerated Data Types

The typedef Statement

Data Type Conversions

Exercises

Working with Larger Programs

Dividing Your Program into Multiple Files

Communication Between Modules

Other Utilities for Working with Larger

Programs

Input and Output Operations in C.Character I/O: getchar and putchar

Formatted I/O: printf and scanf

Input and Output Operations with Files

Special Functions for Working with Files

Exercises

Miscellaneous and Advanced Features

Miscellaneous Language Statements

Working with Unions

The Comma Operator

Type Qualifiers

Command-Line Arguments

Dynamic Memory Allocation

Debugging Programs.Debugging with the Preprocessor

Debugging Programs with gdb

Object-Oriented Programming

What Is an Object Anyway? Instances and Methods

Writing a C Program to Work with Fractions

Defining an Objective-C Class to Work with Fractions

Defining a C++ Class to Work with Fractions

Defining a C# Class to Work with Fractions

C Language Summary.Digraphs and Identifiers

Comments

Constants

Data Types and Declarations

Expressions

Storage Classes and Scope

Functions. Statements

The Preprocessor

The Standard C Library

Standard Header Files

String Functions

Memory Functions

Character Functions. I/O Functions

In-Memory Format Conversion Functions

String-to-Number Conversion

Dynamic Memory Allocation Functions

Math Functions

General Utility Functions

Compi

Table of Contents provided by Publisher. All Rights Reserved.

Preface: Programming in C Programming in C PrefaceIt's hard to believe that 20 years have passed since I first wroteProgramming in C.At that time the Kernighan & Ritchie bookThe C Programming Languagewas the only other book on the market. How times have changed!When talk about an ANSI C standard emerged in the early 1980s, this book was split into two titles: The original was still calledProgramming in C,and the title that covered ANSI C was calledProgramming in ANSI C. This was done because it took several years for the compiler vendors to release their ANSI C compilers and for them to become ubiquitous. I felt it was too confusing to try to cover both ANSI and non-ANSI C in the same tutorial text, thus the reason for the split.The ANSI C standard has changed several times since the first standard was published in 1989. The latest version, called C99, is the major reason for this edition. This edition addresses the changes made to the language as a result of that standard.In addition to covering C99 features, this book also includes two new chapters. The first discusses debugging C programs. The second offers a brief overview of the pervasive field of object-oriented programming, or OOP. This chapter was added because several popular OOP languages are based on C: C++, C#, Java, and Objective-C.For those who have stayed with this text through the years, I am sincerely grateful. The feedback I have received has been enormously gratifying. It remains my main motivation for continuing to write today.For newcomers, I welcome your input and hope that this book satisfies your expectations.Stephen Kochan June 2004 steve@kochan-wood.com Copyright Pearson Education. All rights reserved.