It’s a technicality about the pointer type. You can cast the type away which typically doesn’t change the actual value (but I’m pretty sure that causes undefined behavior)
For your example, int x = 0xDEADBEEF;
signifies the integer -559038737 (at least on x86.)
char *p = (char*)0xDEADBEEF;
on the other hand may or may not point to the real memory address 0xDEADBEEF, depending on factors like if the processor is using virtual or real addressing, etc
You can still be snobby by instead insisting on “fold, scan, iterate”