&operator can be applied to anything that has a memory address. You cannot apply & to register variables, because they are stored in CPU registers.
Also, in C constants are not compile-time constants (i.e., Always allocated memory), so you can safely accept the address of a constant variable. But in C++ , if you take the address of the const variable, it will not be a compile-time constant and storage will be allocated.
<b> Change
In terms of constants, I mean that variables declared with the const keywords, literals such as A, 7, are essentially compilation. Constants.compiler can directly store them in its character table.
source share