* some tutorial and the ansi C book
[mascara-docs.git] / C / the.ansi.c.programming.language / notes.accompany.ansi.c / top.html
blob933d5346fe8580fb4b7d0fbdd3e208863b34b232
1 <!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
2 <!-- This collection of hypertext pages is Copyright 1995, 1996 by Steve Summit. -->
3 <!-- This material may be freely redistributed and used -->
4 <!-- but may not be republished or sold without permission. -->
5 <html>
6 <head>
7 <link rev="owner" href="mailto:scs@eskimo.com">
8 <link rev="made" href="mailto:scs@eskimo.com">
9 <title>C Programming Notes</title>
10 </head>
11 <body>
12 <H1>C Programming Notes</H1>
13 Notes to Accompany
14 <I>The C Programming Language</I>,
15 by Kernighan and Ritchie (``K&amp;R'')
16 <br>
17 <br>
18 Steve Summit
19 <br>
20 <br>
21 <p><I>The C Programming Language</I>,
22 or K&amp;R as it is affectionately known,
23 is widely praised by experienced C programmers
24 as one of the best books on C there is.
25 (It was also the first;
26 it also happens to be a best-seller.)
27 The only real criticism K&amp;R ever receives
28 is that it may not be
29 the best
30 tutorial for beginners;
31 it seems to assume a certain amount of programming savvy
32 and familiarity with computers.
33 Actually,
34 if you read it carefully,
35 you'll find that is constantly dispensing wisdom about programming in general,
36 from basic concepts to deep insights to impeccable commentary
37 on imponderable topics such as programming style, at the same
38 time it teaches the specifics of the C language.
39 Therefore,
40 the fundamental criticism may simply be that K&amp;R is not
41 suitable for those who read carelessly.
42 </p><p>The authors are not out to save the world
43 or to convert it to their philosophy of programming.
44 When they say something, they say it once,
45 without theatrics or undue emphasis.
46 If you read the book too quickly,
47 or skim it,
48 or look only for specific answers
49 to what you think you're trying to learn today,
50 you will miss much of the excellent advice which the authors have to offer.
51 </p><p>These notes
52 were prepared
53 (beginning in Spring, 1995)
54 for the
55 University of Washington
56 Experimental College
57 course in Introductory C Programming.
58 They
59 are meant to supplement K&amp;R
60 for the reader who is new to C
61 and perhaps to programming,
62 and who wants a slightly more detailed,
63 less pithy presentation.
64 I'll add insights from my own experience,
65 in particular by pointing out those areas where people
66 traditionally misunderstand something about C or K&amp;R's
67 presentation of it.
68 I'll also call out a few of the very deep sentences,
69 which you might overlook at first even if you're not skimming
70 (perhaps because their significance only becomes apparent once
71 you've begun writing bigger or more complicated programs),
72 but which contain advice which is absolutely vital to successful
73 real-world programming and which,
74 if you can take it to heart early,
75 will save you from a lot of misery out in the school of hard
76 knocks later on.
77 </p><p>Note that most of these notes
78 merely amplify on the things K&amp;R is saying;
79 there isn't much to say that it doesn't already say,
80 usually better.
81 In particular, many of the things that I'll comment on in the
82 early chapters are discussed in more detail in the later
83 chapters;
84 by barging in with my know-it-all comments,
85 I'm partially destroying the authors' careful progression
86 from an initial, slightly superficial overview
87 to a more detailed, complete presentation.
88 If these notes present more detail than you want to see at first,
89 don't worry
90 (but please do let me know);
91 just
92 come back to them later
93 to see if they clear up anything you're still uncertain on.
94 (Also,
96 you find the description in K&amp;R adequately clear,
97 you don't have to read all of these notes,
98 but do take note of the highlighted ``deep sentences.'')
99 </p><hr>
100 <p><a href="sx1.html" rel=subdocument>Preface</a></p>
101 <p><a href="sx2.html" rel=subdocument>Preface to the First Edition</a></p>
102 <p><a href="sx3.html" rel=subdocument>Introduction</a></p>
103 <p><a href="sx4.html" rel=subdocument>Chapter 1. A Tutorial Introduction</a></p>
104 <p><a href="sx5.html" rel=subdocument>Chapter 2: Types, Operators, and Expressions</a></p>
105 <p><a href="sx6.html" rel=subdocument>Chapter 3: Control Flow</a></p>
106 <p><a href="sx7.html" rel=subdocument>Chapter 4: Functions and Program Structure</a></p>
107 <p><a href="sx8.html" rel=subdocument>Chapter 5: Pointers and Arrays</a></p>
108 <p><a href="sx9.html" rel=subdocument>Chapter 6: Structures</a></p>
109 <p><a href="sx10.html" rel=subdocument>Chapter 7: Input and Output</a></p>
110 <hr>
112 <a href="sx1.html" rel=precedes>Read Sequentially</a>
113 <hr>
115 This page by <a href="http://www.eskimo.com/~scs/">Steve Summit</a>
116 // <a href="copyright.html">Copyright</a> 1995, 1996
117 // <a href="mailto:scs@eskimo.com">mail feedback</a>
118 </p>
119 </body>
120 </html>