What does this line of code mean?
*(volatile uint32_t *)0x40021018 = 0x00000004;
Why is a pointer being created and dereferenced at the same time?