<分区>
我只是在尝试 c 中的数组。其中我有以下基本疑问?
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
a[45]=28; // trying to access the random array element which is out of bound
printf("\n value at a[5] is %d",a[5]);
printf("\nvalue at a[45] is %d",a[45]);
printf("\nvalue at a[78] is %d",a[78];
return 0;
}
以上程序编译成功并产生以下输出。
value at a[5] is 1234355 // some ando address
value at a[45] is 28 // which i have assigned
value at a[78] is 0
我的问题是
i) 当我越界访问数组元素时。为什么它没有产生任何错误?
ii) 对于字符数组,例如:char[10]= {'1','2','3','4','5','6','7','8' ,'9','0'};
数组的最后一个元素将由编译器添加“\0”。整数数组是否与此类似?如果不是,为什么?
iii) 是否可以重新定义数组?