Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はこのコードを持っています
int main() { char A = 'E'; const char * i; i = &A; A = 'B'; }
実際にMSVCでコンパイルされるのはなぜですか? const char * は定数文字変数を指すはずではありませんか? 最後の行で A を 'B' に変更できるのはなぜですか?
何か不足していますか?
Aは、そのポインターを介してポイントconst char*先の変数を変更できないようにするだけです。他の方法で変更することを防ぐことはできません。ポインターと参照は、値を指すか参照することしかできない場合、ほとんど役に立ちません。constconst
const char*
const
const char*このポインターを介してポインティング先を変更できないことを意味します。それは、他の誰かがそれを行うことができないという意味ではありません。