数组索引是负数可以编译通过吗
❶ python中使用负数索引的切片
Python中的序列是可以采用负数的索引来访问的,其范围是 -1 到序列的负长度,也就是
-len(sequence) <= index <= -1,负索引以序列的结束为起点。
除了提供按照索引,访问序列中的单个元素,Python也提供了切片的方式访问序列中的子序列的方式,这就是切片的访问方式,其一般语法如下:
sequence[starting_index:ending_index]
如此,我们会得到从starting_index对应元素开始,到ending_index对应元素结束,但是不包括ending_index对应元素,所组成的子序列的内容。
起止索引都是可选的选项,如果没有提供或者为None,那么开始索引默认为0,结束索引默认为序列最末尾的索引。切片的访问模式,有第三个值,类似于步长,其访问类似下面代码。
(1)数组索引是负数可以编译通过吗扩展阅读
python的索引:
索引的基本格式
变量名[x]--索引为x的值;
变量名[i,j]--索引从i到j-1的值;
索引值(从左往右)从0开始,到N-1结束(有始无终);
索引值(从右往左)从-1开始,到-N结束。
索引的其他特点:可嵌套性。
由于高级数据类型具有可嵌套性,所以索引也具有可嵌套性。其格式为:
变量[index_1][……][index_n]
执行方向:从左向右依次执行。
❷ C语言数组下标可以为负吗
分清声明还是语句。
声明里的中括号里的数字不能为负。例如 int a[-2]; 是错的,数组大小不能为负。
语句里的中括号,C/C++ 看成运算符,不叫标点符号。
数组元素和指针有恒等关系:
a[i] == *(a+i)
所以,i 为 负 的时候,a[i] == *(a- fabs(i))。只要 a-fabs(i) 这个地址里 有 数值,就可以拿来 运算使用。
"很多书上说数组下标不能为负" -- 因为是初级教材。
高级教材里甚至提到, a[i] == i[a] 这也是正确的 !(有人在“知道”里问过,我也回答过。)
当然,只能是变量形式,不能写阿拉伯数字,事实上,也确确实实正确的。