配列の添え字が1でなく0から始まる理由
unko = ['k', 'u', 's', 'o']
このとき、変数unkoがメモリ上のどこを指しているかというと
アドレス | 値 | |
---|---|---|
1000 | k | ←ここ |
1001 | u | |
1002 | s | |
1003 | o |
配列データの先頭のアドレス(1000)を指している。
実際に値を取り出すためには、unko[0]とすることで、 k という値を参照できる。
【配列の添え字が0から始まる場合】
2文字目の u を参照したいときにunko[1] とすることで、
1000 + 1 == 1001(アドレスの番地)
のように参照することができる。
【添え字が1から始まる場合】
先頭の値は unko[1] => k で問題ないとしても、
2文字目の u を参照するときに
1000 + 2 - 1 == 1001
のような -1 が必要になってくる。