私は(1、2)のことを見てきました:Cでは、char *とchar s []の違いは他の型にも当てはまりますか?
char s[] = { 'a', 'b', 'c', '\0' };
char t[] = { 'a', 'b', 'c' };
そして次:
char s[] = "abc";
char t[3] = "abc";
はを効果的に同じです
char *word = "abc";
word[0] = 'd';
場所word
読み出し専用メモリでは、不正なメモリ操作word[0] = 'd'
がエラーになります。
char
の場合のみですか?
int array[] = {1, 2, 3};
int *p = array;
p[0] = 0; // No error here
array[1] = 1; // or here
はいこれらの動作は文字配列と文字列リテラルに固有です。詳細については、C標準をお読みください。 – kaylum
なぜあなたの質問に投票しているのか分かりません。 – UrbiJr
あなたの最初のチャンクでは、 't [3] =" abc "は' char t [3] = "abc"でなければなりません。あなたの2番目のチャンクでも同様です。 –