C TUTORIAL - TABLE OF CONTENTS 

Introduction                                           Page I-1

Chapter  1 - Getting started                           Page 1-1
     FIRSTEX.C     The first example program              1-3

Chapter  2 - Program Structure                         Page 2-1
     TRIVIAL.C     The minimum program                    2-1
     WRTSOME.C     Write some output                      2-1
     WRTMORE.C     Write more output                      2-2
     ONEINT.C      One integer variable                   2-3
     COMMENTS.C    Comments in C                          2-4
     GOODFORM.C    Good program style                     2-5
     UGLYFORM.C    Bad program style                      2-5

Chapter  3 - Program Control                           Page 3-1
     WHILE.C       The While loop                         3-1
     DOWHILE.C     The Do-While loop                      3-2
     FORLOOP.C     The For loop                           3-2
     IFELSE.C      The If & If-Else construct             3-3
     BREAKCON.C    The Break & Continue                   3-4
     SWITCH.C      The Switch construct                   3-4
     GOTOEX.C      The Goto Statement                     3-5
     TEMPCONV.C    The temperature conversion             3-6
     DUMBCONV.C    Poor program style                     3-7

Chapter  4 - Assignment & Logical Compare              Page 4-1
     INTASIGN.C    Integer assignments                    4-1
     MORTYPES.C    More data types                        4-2
     LOTTYPES.C    Lots of data types                     4-4
     COMBINE.C     Combining different types              4-6
     COMPARES.C    Logical compares                       4-7
     CRYPTIC.C     The cryptic constructs                 4-11

Chapter  5 - Functions, variables, & prototyping       Page 5-1
     SUMSQRES.C    First functions                        5-1
     SQUARES.C     Return a value                         5-3
     FLOATSQ.C     Floating returns                       5-4
     SCOPE.C       Scope of variables                     5-5
     RECURSON.C    Simple Recursion Program               5-9
     BACKWARD.C    Another Recursion Program              5-11
     FLOATSQ2.C    Floating returns with prototypes       5-12

Chapter  6 - Defines & Macros                          Page 6-1
     DEFINE.C      Defines                                6-1
     MACRO.C       Macros                                 6-3
     ENUM.C        Enumerated type                        6-3

Chapter  7 - Strings and Arrays                        Page 7-1
     CHRSTRG.C     Character Strings                      7-1
     STRINGS.C     More Character strings                 7-3
     INTARRAY.C    Integer Array                          7-4
     BIGARRAY.C    Many Arrays                            7-4
     PASSBACK.C    Getting data from Functions            7-5
     MULTIARY.C    Multidimensional arrays                7-6

Chapter  8 - Pointers                                  Page 8-1
     POINTER.C     Simple Pointers                        8-1
     POINTER2.C    More pointers                          8-4
     TWOWAY.C      Twoway Function Data                   8-6
     FUNCPNT.C     A pointer to a function                8-7
 
Chapter  9 - Standard Input/Output                     Page 9-1
     SIMPLEIO.C    Simplest standard I/O                  9-1
     SINGLEIO.C    Single character I/O                   9-4
     BETTERIN.C    Better form of single I/O              9-4
     INTIN.C       Integer input                          9-6
     STRINGIN.C    String input                           9-7
     INMEM.C       In memory I/O conversion               9-9
     SPECIAL.C     Standard error output                  9-10

Chapter 10 - File Input/Output                         Page 10-1
     FORMOUT.C     Formatted output                      10-1
     CHAROUT.C     Single character output               10-3
     READCHAR.C    Read single characters                10-4
     READTEXT.C    Read single words                     10-5
     READGOOD.C    Better read and display               10-6
     READLINE.C    Read a full line                      10-6
     ANYFILE.C     Read in any file                      10-6
     PRINTDAT.C    Output to the printer                 10-7

Chapter 11 - Structures                                Page 11-1
     STRUCT1.C     Minimum structure example             11-1
     STRUCT2.C     Array of structures                   11-2
     STRUCT3.C     Structures with pointers              11-3
     NESTED.C      Nested structure                      11-5
     UNION1.C      An example union                      11-7
     UNION2.C      Another Union example                 11-8
     BITFIELD.C    Bitfield example                      11-10

Chapter 12 - Dynamic Allocation                        Page 12-1
     DYNLIST.C     Simple Dynamic Allocation             12-1
     BIGDYNL.C     Large Dynamic Allocation              12-5
     DYNLINK.C     Dynamic Linked List Program           12-6

Chapter 13 - Character and Bit Manipulation            Page 13-1
     UPLOW.C       Upper/Lower Case Text                 13-1
     CHARCLAS.C    Character Classification              13-1
     BITOPS.C      Logical Bit Operations                13-2
     SHIFTER.C     Bit Shifting Operations               13-3

Chapter 14 - Example programs                          Page 14-1
     DOSEX.C       DOS call examples                     14-2
     WHATNEXT.C    Ask Question in Batch File            14-3
     LIST.C        Source Code Lister                    14-4
     VC.C          Visual Calculator                     14-5



ABOUT THE AUTHOR
___________________________________________________________

The author of this tutorial began programming in 1961 using
FORTRAN on an IBM 1620.  Since then, most of his career has
been involved with designing digital logic for satellite
application.  In 1983, being somewhat burned out with logic
design, he began a study of some of the more modern
programming languages and has since made a complete career
shift to software development.  After learning Pascal, C was
studied, followed by Modula-2 and Ada, and more recently C++. 
Rather than simply learning the syntax of each new language,
modern methods of software engineering were studied and
applied to effectively utilize the languages.  He is
currently employed by a large research and development
laboratory where he continues to study, teach, and apply the
newer programming languages.

Hosted by www.Geocities.ws

1