为什么在C语言定义数组时下标必须从零开始呢?

请高手不吝赐教。

为了标新立异.

在C出现以前的流行语言,例如Fortran 从1开始,ALGOL可以自由定义下标从几开始.

C语言定义从零开始.

从零开始对使用者来说没有自由定义好,但编译器设计简单.省事.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-25
这需要从数组的存储方式上解释了。

定义一个数组时,系统会分配一块连续的内存,由数组名指向该块内存的首地址。
引用某个元素时,首先需要计算该元素的地址(及 数组名 + 下标),然后根据该地址取到相应存储单元的内容。
所以,如果希望取数组的第一个元素,下标必须是0
第2个回答  2008-12-26
yxlovemoney mdffeng L_o_o_n_i_e
回答的都很有道理。
在C语言定义数组时下标必须从几开始,并不要紧,因为这是系统定义的。
无论从几开始,我们都要会用,都要用好。
第3个回答  2008-12-26
C规定的,没什么原因,其他语言定义是从1开始的,只是有点方便
第4个回答  2008-12-25
为了方便,不用0的话,反而更复杂。
相似回答