请解释一下输出

-13 c

#include <stdio.h>

int main() {
    int a[4] = {1, 2, 3, 4};
    int b[4] = {1, 2, 3, 4};
    int n = &b[3] - &a[2];
    printf("%d\n", n);
}
Run Code Online (Sandbox Code Playgroud)

这个问题的输出是-3,任何人都可以解释这是怎么回事?

cni*_*tar 8

减去"无关"指针,即指向不同对象的指针是不确定的.

C11-6.5.6-9

当减去两个指针时,两个指针都指向同一个数组对象的元素,或者指向数组对象的最后一个元素的元素;

  • @chris这也是'a`在'b`开始的地方结束的可能性. (3认同)