Intermediate C++ Game Programming Tutorial 2

From Chilipedia
Revision as of 22:49, 18 May 2017 by Chili (Talk | contribs) (Part 2)

Jump to: navigation, search

In this two-part tutorial we learn all about pointers and pointer-related bullshits. Part one focuses on the basics--the most common pointer operations and the basic underlying mechanisms. In part two, we take a look at some less commonly-used but still important pointer operations (pointer arithmetic), as well as some other concepts related to pointers. This tutorial introduces a lot of new concepts and features, but is light on practical examples. In the following tutorials we will get more hands-on practice with pointers, but also make sure to experiment with them on your own after finishing Tutorial 2.

Topics Covered

Part 1

  • Declaring pointers
  • The addressof operator &
  • The dereference (indirection) operator *
  • The arrow (member of pointer) operator ->
  • The indexing (subscript) operator []
  • The nullptr pointer literal
  • The sizeof query operator

Part 2

  • Pointer Arithmetic
  • Pointer const Correctness
  • Pointers to Pointers
  • Pointer Reinterpretation
  • C++ Style Casting reinterpret_cast<>
  • Linked Lists

Video Timestamp Index

Tutorial 2.1

Homework

Part 1

Write a function called sum which returns the sum of all elements of an int array.

Here is the solution video: solution video.

Notes

  • At 24:30 in Part 1, I show the calculation for indexing off of a pointer (p[2]) as B + 2 x 4 -> B, and then a memory store operation 69 -> int@[B], but in reality (optimized or not) the index calculation would be done as part of the memory access operation, so it would end up being something like 69 -> int@[B + 2 x 4].

See also