以下是引用a974723617在2015-11-11 23:20:50的发言:
突然发现数组元素可以超过数组长度这事怎么回事。
#include<stdio.h>
int main()
{
int a[3];
scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);//
printf("%d%d%d%d",a[1],a[2],a[3],a[4]);
}
int a[3];
scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);
首先,这里为数组第2,3元素赋值,同时为数组最后一个元素顺序向后的两个内存空间赋值(数组分配空间是连续的,超出部分向后依然连续),不过这样有一个问题,int a[3],系统会分配三个内存,三个内存后的数据被修改后对系统有没有影响是不确定的,有潜在风险。
再者超出部分已经不属于数组a[3]了,同时题主忘了给数组第一个元素赋值!所以数组a[3]输出肯定会出问题的!
个人看法!