1/6

A raw pointer — *const T or *mut T — is a plain address. It carries no lifetime, no ownership, no aliasing guarantee, and may be null or unaligned.

Creating one is safe. Dereferencing one is not:

let p: *mut i64 = &mut value;    // safe — just an address
unsafe { *p += 1; }              // unsafe — you are asserting it is valid

That split is deliberate: holding an address can never corrupt anything. Reading through it can.