YES
Volatile keyword tells the compiler that the value of the variable can change (may be frequently) so that it can avoid the optimization.
Constant means variable can not be assigned a new value the catch here is using the pointer we can change the value. So when we say a variable is both a constant and volatile that means we are instructing the compiler that the variable can not be assigned a new value and its value can be changed by the use of pointer so don't do any optimization.