【问题标题】: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 个整数的数组,该数组超过原始数组。

    严格来说,当您访问被引用对象之外的元素时,这是未定义的行为。

    【讨论】:

    • 哈哈。这是我很长一段时间以来见过的最直接但又非常准确的图形。不错。
    猜你喜欢
    • 2023-03-11
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多