指针 *(x+i) 有什么作用?

What does a pointer *(x+i) do?

我相信我大致了解指针的作用,但我不明白指针 *(x+i) 的作用。 例如 *(x+1)。 它指向 x 并将其值增加 1 还是什么?

我还找到了这个例子: *(x+1) = 5

那有什么作用?

感谢您的回复!

*(x+1)和更清晰的x[1]完全一样。将此视为 数组 的第二个元素的值,其第一个元素位于地址 x.

所以*(x+1) = 5;x[1] = 5;是一样的,就是把值5赋给数组x中位置1的元素。

请注意,如果 x 是数组元素的地址,它(以及您拥有它的方式 - *(x+1))是 定义的后面至少有 1 个元素。指针运算仅在数组内有效。否则行为是 undefined 并且编译器可能会跳起来吃掉你的猫。