質問: constの書き換え const で宣言した変数の値を変更するには、その変数へのポインタをほかの変数に代入すれば変更可能ですよね?
回答: 不可じゃないかな。 というか、何が起こるかわかんないよ・やっちゃいけない の領域 じゃないかしら。 見かけ非constにしたら、そりゃコンパイルは通るでしょうが、 実行して書き換えできるのか? っていわれたら保証なんかないはず。 (キャスト だろうが、非constポインタ変数だろうが、同じこと) 言語規格上どうなってるかは知りませんが、少なくとも 現代のPC上じゃ、落ちる(SEGV)んじゃないかと思う。 const なら、read only メモリ域に配置してもよくて、 コンパイラがそうしてればOSのメモリ保護機能にひっかかるから。 ( 組み込みOSとかだと違うかもしれんが ) P.S. C++ だと、また別のややこしい話が出てきます。 基本型はともかく、ユーザ定義型(struct, class)だと。 C同様の POD(Plain Old Data) ならCと同じかもしらんが、 そうじゃなければ read only メモリに配置できない。 コンストラクタ・デストラクタ の概念保証しないといけないから。