读书人

数组下标为-1是什么意思?解决办法

发布时间: 2012-06-14 16:00:31 作者: rapoo

数组下标为-1是什么意思?




数组下标为-1是什么意思?它不是越界了嘛,怎么也能得出答案?

[解决办法]
这是在欺负编译器。
编译器是机器,不是人,它的规则是事先写好的。
数组的下标a[i],实际上就变成了*(a+i)
这么说,你能明白为什么能得出结果了吧。

当然了,程序这么写,搞学术、考试没问题,实际写程序最好不要这么写
[解决办法]
有个sum(&a[2]),函数调用的时候a已经是数组的第三个元素了,在此基础上+1 -1都在数组范围之内。

如果直接在a上-1,那样就会超出数组范围,就是个未定义的行为。若真想知道答案,可以自己单步调试,查看内存里面放的到底是什么东西。
[解决办法]

探讨

有个sum(&a[2]),函数调用的时候a已经是数组的第三个元素了,在此基础上+1 -1都在数组范围之内。

如果直接在a上-1,那样就会超出数组范围,就是个未定义的行为。若真想知道答案,可以自己单步调试,查看内存里面放的到底是什么东西。

[解决办法]
欺负人的玩意。你是知道-1的地方有合理的数据才这么写的。平时要是这地方没有合理的数据,可能你就崩溃了

读书人网 >C语言

热点推荐