The below example confuses me a little. Basically, we have an unsigned 64 bit integer initialized to 0. Then we use the type cast operator, which will cast to an unsigned 8-bit integer pointer, to cast the first memory address of val. I believe we do this because when we start assigning values to the pointer, the first address and then subsequent addresses of val will reference them too.