Essential C By Nick Parlante
Copyright 1996-2003, Nick Parlante
This Stanford CS Education document tries to summarize all the basic features of the C language. The coverage is pretty quick, so it is most appropriate as review or for someone with some programming background in another language. Topics include variables, int types, floating point types, promotion, truncation, operators, control structures (if, while, for), functions, value parameters, reference parameters, structs, pointers, arrays, the preprocessor, and the standard C library functions. The most recent version is always maintained at its Stanford CS Education Library URL http://cslibrary.stanford.edu/101/. Please send your comments to nick.parlante@cs.stanford.edu. I hope you can share and enjoy this document in the spirit of goodwill in which it is given away -- Nick Parlante, 4/2003, Stanford California. Stanford CS Education Library This is document #101, Essential C, in the Stanford CS Education Library. This and other educational materials are available for free at http://cslibrary.stanford.edu/. This article is free to be used, reproduced, excerpted, retransmitted, or sold so long as this notice is clearly reproduced at its beginning. Table of Contents Introduction .........................................................................................pg. 2 Where C came from, what is it like, what other resources might you look at. Section 1 Basic Types and Operators ..........................................pg. 3 Integer types, floating point types, assignment operator, comparison operators, arithmetic operators, truncation, promotion. Section 2 Control Structures ........................................................pg. 11 If statement, conditional operator, switch, while, for, do-while, break, continue. Section 3 Complex Data Types .....................................................pg. 15 Structs, arrays, pointers, ampersand operator (&), NULL, C strings, typedef. Section 4 Functions ........................................................................pg. 24 Functions, void, value and reference parameters, const. Section 5 Odds and Ends ..............................................................pg. 29 Main(), the .h/.c file convention, pre-processor, assert. Section 6 Advanced Arrays and Pointers ....................................pg. 33 How arrays and pointers interact. The [ ] and + operators with pointers, base address/offset arithmetic, heap memory management, heap arrays. Section 7 Operators and Standard Library Reference ..............pg. 41 A summary reference of the most common operators and library functions. The C Language C is a professional programmer's language. It was designed to get in one's way as little as possible. Kernighan and Ritchie wrote the original language definition in their book, The C Programming Language (below), as part of their research at AT&T. Unix and C++ emerged from the same labs. For several years I used AT&T as my long distance carrier in appreciation of all that CS research, but hearing "thank you for using AT&T" for the millionth time has used up that good will.