以下のコードについていくつか質問があります。
- あるタイプのポインターがある場合、それで配列インデックスを使用するとはどういう意味ですか? この例では、何
ptr[3]
の略ですか (ptr は何らかの型のポインターです)。 プログラムの出力は次のようになるはずですが、理由がわかりません
to be or not to be (Hamlet)
。私の問題は行にあります。この行が配列の 3 番目の要素をどのように変更するのかわかりません。(&ptr2)[3] = str
ptr1
int main() { char str[] = "hmmmm..."; const char *const ptr1[] = {"to be", "or not to be", "that is the question"}; char *ptr2 = "that is the question"; (&ptr2)[3] = str; strcpy(str, "(Hamlet)"); for (int i = 0; i < sizeof(ptr1) / sizeof(*ptr1); ++i) { printf("%s ", ptr1[i]); } return 0; }
このビジュアライザーを使用すると、ptr1 が str を指すことがわかりますが、なぜそうなるのかわかりません。
助けていただければ幸いです。