1

私はこのコードを持っています

int main()
{
    char A = 'E';

    const char * i;

    i = &A;

    A = 'B';

}

実際にMSVCでコンパイルされるのはなぜですか? const char * は定数文字変数を指すはずではありませんか? 最後の行で A を 'B' に変更できるのはなぜですか?

何か不足していますか?

4

3 に答える 3

7

Aは、そのポインターを介してポイントconst char*先の変数を変更できないようにするだけです。他の方法で変更することを防ぐことはできません。ポインターと参照は、値を指すか参照することしかできない場合、ほとんど役に立ちません。constconst

于 2012-11-14T11:40:51.813 に答える
4

const char*このポインターを介してポインティング先を変更できないことを意味します。それは、他の誰かがそれを行うことができないという意味ではありません。

于 2012-11-14T11:41:15.737 に答える