These modules rely on Nick Parlante's "Essential C" tutorial to provide you with a written reference to the language.
Our videos and exercises are building on this lecture-like exposition to the language to provide you with a complementary
hands-on way to learn it. Make sure you start a module by the readings recommended in this folder.
For this first module, you should read the following sections of this PDF document; Please note that, given our focus in this module,
we'll be listing the sub-sections you should read. For now, you may simply ignore the others;
Section #3 - Complex Data Types
Read again this section with a focus on the pointers-related material
Section #4 - Functions
Same here, focus on the pointers-related material
Section #6 - Advanced Arrays and Pointers
Read the whole section
While we provide a PDF version of the above-mentioned tutorial, you might want to follow this link to Nick Parlante's web site and download
the latest version and peruse the excellent material available there.
This tutorial will complement the previous by offering in-depth explanations of the way memory is managed
at runtime by your programs.
For now, focus only on the following sections;
Section #1 - Basic Pointers
Section #2 - Local Memory
Section #3 - Reference Parameters
While we provide a PDF version of the above-mentioned tutorial, you might want to follow this link to Nick Parlante's web site and download
the latest version and peruse the excellent material available there.
We are going to introduce pointers through a series of proof of concepts small programs to illustrate
their main properties. The last video in this folder will have you trace step-by-step a program which,
although simple from the algorithm perspective, will attempt to trick you by its use of pointers.
You should definitively draw diagrams of what is going on as you work on this or, even better, a full stack diagram
There is a tight relationship between arrays, strings and pointers. This material will start you thinking
about these relationships which are the source of many bugs when misunderstood.
We are going to take a look at how to implement two functions meant to replace the standard library's
strlen & strcmp. Our versions will be implemented as part of a future "handy string library"
which we will finalize in the next modules.