回答編集履歴
1
微修正
answer
CHANGED
@@ -5,4 +5,4 @@
|
|
5
5
|
YESでもありNOでもあります。strはchar型へのポインタですので、strがどこを指しているかによります。
|
6
6
|
書き換え可能なメモリ(例えばmallocで確保したメモリや、char foo[100];等で確保したメモリなど。)を指していれば問題無く可能です。
|
7
7
|
しかし、もし、書き換え不可能なメモリやそもそもメモリのないところを指していると例外が発生する処理系が多いです。
|
8
|
-
char* str = "ABC";と書いた場合、"ABC"は定数なので書き換えてはダメですね。PCの場合は書き換えできてしまいますが、親切な処理系は例外
|
8
|
+
char* str = "ABC";と書いた場合、"ABC"は定数なので書き換えてはダメですね。PCの場合は物理的には書き換えできてしまいますが、親切な処理系は例外を発生してくれます。(例外が発生しない場合、いつの間にか文字定数が別の文字列に変わってしまうので要注意。)
|