不会的——因为定义数组时,下标表示数组长度(元素个数),所以不得为负数;而在引用数组元素时并不要求下标必须为非负,所以[-1]只表示下标为0的元素前面的一个元素。故这时要看0元素前面的那个元素值是否为0,不为0则不执行else部分,为0则执行else部分。供参考……
尝试了下,不会报错,但是数组越界了,a[-1]的值变得不确定,和分配内存时原来的数据有关,是个随机数,如果不是0的话,if执行,是0的话不执行
C语言中,整数0即为假,其他非零整数均等效于真
越界了,是很严重的后果,这种情况不能够编译吧