Books to learn C programming

7 replies [Last post]
GrevenGull
Offline
Joined: 12/18/2017

Anybody got any good suggestions?

I know this question has indeed been answered here on this forum before, but I just wanted to make a dedicated thread about it and only it :)

Of course online resources and digital files are welcome as well, but I'm primarily looking for old fashioned books.

andyprough
Offline
Joined: 02/12/2015

Here's a website that has several interesting ones listed for free: "50+ Best Free C Programming Tutorials, PDF & eBooks" https://www.fromdev.com/2013/10/c-programming-tutorials.html

Among them, "Beej's Guide to C Programming" is available under a CC BY-NC-ND 3.0 license (126 pages, May 2007, by Brian “Beej” Hall) https://beej.us/guide/bgc/
"The New C Standard" is a mammoth 1600 page book by Derek Jones in 2009 http://www.knosof.co.uk/cbook/cbook.html
"Programming in C UNIX System Calls and Subroutines using C" by J.D. Marshall, last updated in 2005 http://www.cs.cf.ac.uk/Dave/C/CE.html
"The GNU C Programming Tutorial" by Mark Burgess, and Ron Hale-Evans, 2002, available under a GNU Free Documentation License http://www.crasseux.com/books/ctut.pdf

GrevenGull
Offline
Joined: 12/18/2017

Thanks! :)

nadebula.1984
Offline
Joined: 05/01/2018

C Programming: A Modern Approach (2nd ed.) by K. N. King

For online reference materials, cppreference.com sounds good, which provides references for both C++ and C. Beware that they are definitely different programming languages, though.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

C++ basically is a superset of C (not formally though: for instance, you cannot write "int class = 0;" in C++ because "class" is a keyword).

nadebula.1984
Offline
Joined: 05/01/2018

I don't quite agree with that "C++ is a superset of C". There are several fundamental differences in C++ and C syntax.

For example, initialization is sentence in C++ but not in C, and assignment expression is l-value in C++ but not in C.

However, it is true that many features in C99 and subsequent C standards (C11, C17) are from C++.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

Disagree with the creator of the C++ all you want: http://www.stroustrup.com/bs_faq.html#C-is-subset

nadebula.1984
Offline
Joined: 05/01/2018

Surely, thus spoke the creator of C++, but this is not generally acknowledged. Besides, that the "subset" and the "superset" are not 100% compatible is true.