const と volatile は識別子の型の一部であり、記憶クラスの一部ではありません。ただし、それらは多くの場合、式の評価中にオブジェクトの値が取り出されるとき (正確には、lvalue が rvalue になるとき) に、型のいちばん上の部分から削除されます。これらの用語は、プロトタイプ代入式 left-hand-side=right-hand-side; から来ています。ここで、左側は依然としてオブジェクトを直接参照している必要があり (lvalue)、右側は値であるだけでよい (rvalue) ということです。したがって、lvalues である式だけが const または volatile (あるいは、その両方) で修飾できます。