Book Image

Learn C Programming - Second Edition

By : Jeff Szuhay
Book Image

Learn C Programming - Second Edition

By: Jeff Szuhay

Overview of this book

The foundation for many modern programming languages such as C++, C#, JavaScript, and Go, C is widely used as a system programming language as well as for embedded systems and high-performance computing. With this book, you'll be able to get up to speed with C in no time. The book takes you through basic programming concepts and shows you how to implement them in the C programming language. Throughout the book, you’ll create and run programs that demonstrate essential C concepts, such as program structure with functions, control structures such as loops and conditional statements, and complex data structures. As you make progress, you’ll get to grips with in-code documentation, testing, and validation methods. This new edition expands upon the use of enumerations, arrays, and additional C features, and provides two working programs based on the code used in the book. What's more, this book uses the method of intentional failure, where you'll develop a working program and then purposely break it to see what happens, thereby learning how to recognize possible mistakes when they happen. By the end of this C programming book, you’ll have developed basic programming skills in C that can be easily applied to other programming languages and have gained a solid foundation for you to build on as a programmer.
Table of Contents (38 chapters)
1
Part 1: C Fundamentals
10
Part 2: Complex Data Types
19
Part 3: Memory Manipulation
22
Part 4: Input and Output
28
Part 5: Building Blocks for Larger Programs

Chapter 13 – Using Pointers

  1. A pointer variable has a value that is an address. That value can be 0 (NULL) up to the largest addressable byte in memory. 
  2. A pointer either has the type for the value it points to, or it has a void* type, which is unknown and must be provided to access the value it points to.
  3. The target of a pointer is either NULL (no target) or the location of an already-allocated memory location (such as an intrinsic variable, a structure variable, or an array variable).
  4. When any variable is passed via a function parameter, its value is copied to be used in the function body. For non-pointer variables, the values may be used directly. For pointer variables, the address is used to access the target value.
  5. De-referencing a pointer means using the address it contains to get or set a value at that address. A pointer variable only contains an address.
  6. A pointer can address any allocated piece of memory in a program's memory space...