これを行うとき:
int square(int& x) { return x*x;};
int s = square(40); // This gives error
これを修正するには、次のようにします。
int square(const int& x) { return x*x;};
int s = square(40); // This is OK
40は定数であることを理解していますが、これを行うとどうなりますか。
const int& x = 40
なぜそれはconst
キーワードだけで大丈夫なのでしょうか?それは、誰もが参照する値を変更できないことをコンパイラが保護する方法x
ですか?
40はconstであるため、メモリ内の場所もわかりませんが、コンパイラはこのアドレスを認識してはなりません。したがって、コンパイラはアドレスに移動してアドレス&40
を変更できるため、たとえば値を40から30に変更できます。 30までの値?