指针 *(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 并且编译器可能会跳起来吃掉你的猫。
我相信我大致了解指针的作用,但我不明白指针 *(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 并且编译器可能会跳起来吃掉你的猫。