In this chapter we introduced many parts of the C programming language by comparing them to similar language constructs in Python, a language that many readers may know. C has similar language features to those of many other high-level imperative and object-oriented programming languages, including variables, loops, conditionals, functions, and I/O. Some key differences between the C and Python features we discussed include C requiring that all variables be declared of a specific type before they are used, and that C arrays and strings are a lower-level abstraction than Python’s lists and strings. The lower-level abstractions allow a C programmer more control over how their program accesses its memory, and thus more control over the efficiency of their program.
In the next chapter we cover the C programming language in detail. We revisit the many features of the language presented in this chapter in more depth, and we introduce some new C language features, most notably C pointer variables and support for dynamic memory allocation.