數組索引是負數可以編譯通過嗎
❶ 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] 這也是正確的 !(有人在「知道」里問過,我也回答過。)
當然,只能是變數形式,不能寫阿拉伯數字,事實上,也確確實實正確的。