【问题标题】:Array and pointers in cc中的数组和指针 【发布时间】:2022-01-09 14:49:12 【问题描述】: int x[7] = { 100,200,300,400,500,600,700}; int *y = (int *)(&x + 1); printf(“%d”,*(y-1)); y 的值如何指向第 2 行之后数组的最后一个? 【问题讨论】: 标签: arrays c pointers integer memory-address 【解决方案1】: &x 的类型为 int (*)[7],表示指向 7 个整数数组的指针。 如果您将1 添加到此指针,您将“移动”到下一个包含 7 个整数的数组,该数组超过原始数组。 严格来说,当您访问被引用对象之外的元素时,这是未定义的行为。 【讨论】: 哈哈。这是我很长一段时间以来见过的最直接但又非常准确的图形。不错。