Skrivet av lassep1l1s:
Boken The C programming language, av K&R (som skapade C) är nog referensverket.
Tunn, lättläst och koncentrerad med massor av exempelkod och enkla övningar.
Tycker en som försörjt sig på att koda C i 30 år.
Jag brukar vara rätt rask med att tipsa om den när folk frågar om baskoncept i C. C är i sig inget stort språk, så för att lära sig konstruktionerna räcker den märkbart korta boken långt.
Ska jag samtidigt passa på att framföra lite kritik så är det i boken flera exempel som åtminstone jag tycker är onödigt svårpenetrerbara. De skriver ofta så kompakt som det bara är möjligt, vilket kan vara en intressant sysselsättning, men lätt förtar en del i läsbarhet. Det är ingen bra vana att variabler heter (snabbkoll i boken) `p`, `q`, `s`, `t`, `v`, `x`, `y`, `ip`, `temp`, `px`, `py`, `pn`, etc., och att de föredrar konstruktioner som
for (n = 0; n < SIZE && getint(&array[n]) != EOF; n++);
med tomma kroppar, eller
if (c == '\n')
s[i++] = c;
i stället för att skriva ökningen på en separat rad för att tydliggöra vad som händer är visserligen kompakt men sällan optimalt läsbart. Variabelnamnen kan jag tycka är onödigt kompakta generellt; övriga konstruktioner kan vara intressanta att tänka över och är ofta väldigt eleganta, men frågan är om de just är bra inlärningsmaterial för en nybörjare till ämnet, och om de är bra exempel på hur kod bör skrivas. Dessa anmärkningar är främst relevanta om man tittar på K&R ur ett perspektiv som "nybörjare på programmering"-bok, vilket nog ej heller var bokens initiala tanke. Det är en bra referens för att visa C för någon som redan har viss koll på programmeringen, med väldigt just eleganta exempel.
Jag har inget överflöd av tips på böcker som jag anser är bättre. Jag har skummat Ouallines Practical C Programming (O'Reilly-boken) som fokuserar mer på just aspekten att skriva läsbar kod, dvs lite mer "software engineering" än "computer science", men blir också i runda slängar dubbelt så lång som K&R. Den är också märkbart mer "pratig".
Jag har sett tips om Kings C Programming: A Modern Approach som tyder på att den verkar vara mer vad jag skulle rekommendera som en "nybörjarbok". Nu är vi också uppe i fyra gånger så många sidor som K&R . Jag har dock inte haft möjlighet att läsa i den själv.
The Definitive C Book Guide and List [SO] är en rätt diger listning av böcker på Stack Overflow, ordnade efter tänkt läsarnivå.