Real programmers can change the value of 4. In FORTRAN
I remember that gem from 40+ years ago
Fortran (then, now?) passed all arguments to subroutines by reference. When an integer constant was passed presumably the compiler would assign a temporary initialized to that constant and pass the address of that temporary.
Some Fortran compilers on some systems (IBM?) assigned storage to all the unique integer constants used in a program presumably because of architectural constraints or memory/speed concerns.
When the constant 4 was passed as an argument to a subroutine the address of location containing the constant was passed rather than the address of a copy.
If the subroutine modified the formal parameter corresponding to the actual parameter 4 then that constant (formerly known as 4) becomes 3 (or whatever) during the remainder of program's execution.
I also recall you could also overwrite Hollerith literals (eg 4HHELLO) for even more fun.