我对下面的代码有几个问题。
- 如果我有某种类型的指针,那么对它使用数组索引意味着什么?在这个例子中,代表什么
ptr[3]
(ptr 是某种类型的指针)? 程序的输出应该是,
to be or not to be (Hamlet)
但我不知道为什么,我的问题是行(&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,我只是不明白为什么会这样。
帮助表示赞赏。