【发布时间】:2016-07-25 17:01:59
【问题描述】:
我想知道为什么会这样。我正在创建一个 5 元素的整数数组 - 这意味着每个元素在内存中占用 4 个字节。为什么当我打印 myArray[-1] 的地址时,我也得到了一个有效的地址?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int myArray[] = {1, 2, 3, 4, 5};
printf("0x%p\n0x%p\n0x%p\n", &myArray[-1], &myArray[0], &myArray[1]);
return 0;
}
输出: 0x0028FEF8 0x0028FEFC 0x0028FF00
【问题讨论】:
-
我投票结束这个问题,因为“解释 UB”