char h[]="123"; sizeof(h)毫无疑问是4; h[4]='a'; 这样的不报错的,只是给了个提示,说数组是包含4个元素。当我打印出这5个元素的地址的时候,我发现前4个地址,是连续的,后边定义的a[4]与上边的地址不连续。我可以理解成a[4],就相当于另外定义的一个变量。 --------------------------我是可爱的分割线-------------------------------- 有了上边的结果,我改变了定义 char h[7]="123"; sizeof(h)成了7,可是当我打印出所有元素的地址的时候,我发现,地址依然是前4个连续,后边的不连续。于是我清空了缓存,重新执行了一次,结果还是一样。有谁能解释一下吗? 为什么我定义的数组开辟的空间不连续呢?
|