Question: I'm trying to figure out how it is that two variable types that have the same byte size?

If i have a variable, that is one byte in size.. how is it that the computer is able to tell that it is a character instead of a Boolean type variable? Or even a character or half of a short integer?

Answer: 
Because you *specify* the type. C++ is a strongly typed language. You can't write `$x = 10`. :)

It knows 

```
 char c = 0;

```

is a `char` because of... well, the `char` keyword.
In general, it can't. Look at the restrictions of `dynamic_cast<>`, which tries to do exactly that. `dynamic_cast` can only work in the special case of objects derived from polymorphic base classes. That's because such objects (and only those) have extra data in them. Chars and ints do not have this information, so you can't use `dynamic_cast` on them.