Division is the last of the four basic arithmetic operations taught. Addition is easiest, followed by subtraction. Multiplication is merely aggressive addition. Division is a weird un-multiplication combined with subtraction thing, which is probably why educators save the concept for last.
Continue reading
Category Archives: Lesson
The Elvis Operator

A new operator was added to the C language in the last revision, one that I don’t cover in my books. (I’m not sure how that happened.) Anyway, it’s the Elvis operator. Unless you’re a fan of the ternary operator, you’ll probably never use it.
Continue reading
Shift and Verify a Magic Square
Last week’s Lesson showed how to shift a column of numbers in an array grid. The array just happens to be a magic square. So the puzzle is to run the array through the confirm_magic() function, which was presented in a previous week’s Lesson. Seems easy.
Continue reading
The Square is Really Magic
Before moving off the topic of arrays and their bogus dimensions, I want to play further with a magic square. Specifically, it intrigues me that you can shift rows or columns within the square and it doesn’t affect the magical properties.
Continue reading
Pass a 2D Array to a Function (No Pointers!)
Suppose you have an array of integers which represents a magic square: All the rows and columns — even the two diagonals — add to the same total. To prove it, you create a function, confirm_magic() that processes the array and validates the math. You have just one problem . . .
Continue reading
A Single-Dimension Array Pretends to be Two-Dimensions
Multi-dimension array notation is just a handy shortcut for you, the human programmer. Internally, an array is a single-file line of values, one marching after another. The dimensional aspect helps humans organize the array’s data, but all that organization is superficial.
Continue reading
Two Dimensional Arrays are a Myth
Do C language pointers frighten you? Good! They’re supposed to, mostly because few instructors bother explaining them well, but also because of the nomenclature: “Pointers point.” Regardless, if you shun pointers, as many C programmers do, you can fall back on array notation. It’s a useful alternative and a handy shortcut, but it’s completely bogus.
Continue reading
Structure Size and Memory Alignment
Though it’s possible to guess the byte size of a structure, it’s bad practice to do so. Even advanced C programmers, who know variable widths by heart, rely upon the sizeof operator to obtain a structure’s size.
Continue reading
Look at the sizeof That Thing
A structure is a multi-variable, containing several variable types, all members of the same unit. Two declarations are required for a structure: The structure itself and the variable. Programmers get into trouble with structures when determining the variable’s size, using typedef as a structure shortcut, and when declaring structure pointers.
Continue reading
Surrender to the Overflow
It’s a common question beginning programmers ask: “Why use different types of variables when every number can be expressed as a float?”
Continue reading