Pointers Diagram

Volatile

Volatile doesn’t store values in cache (skips this optimization) so that when something external to the processor changes a value, a volatile variable knows the value is changed.
When a variable can be changed externally, use volatile.