هیچ سوالی مسخره نیست (: در واقع سوال ها فقط می تونن غیردقیق باشن یا عنوان بد داشته باشن اما مسخره نیستن - هرچند که بانمک، فلسفی و جذاب میتونن باشن - مثل همین (: البته اگر سوالت اینه که چرا اولین آرایه زبون پیتون اندیس ۰ داره و نه ۱. اگر به هر زبون دیگه ای برنامه نویسی کرده باشی می بینی که همه زبون های معقول اینجوری هستن. دلیلش هم کاملا فنی است و بر می گرده به زمان سی. توی سی، آرایه چیزی به جز بخشی از حافظه نیست. وقتی آرایه ای مثل
int arr[5]
تعریف می کنی، در واقع این رو تعریف کردی:
*(int*5)
که داره می گه
malloc(sizeof(int)*5)
که معنیش اینه که «برای پنج تا عدد صحیح، حافظه کنار بذار.» حالا یک اشاره گر داری که به اول جایی در حافظه اشاره می کنه و در واقع اینجوری بهش اشاره می شه:
arr[0]
که همون
*(arr)
است. حالا برای رسیدن به عنصر بعدی تو راحت می زنی
arr[1]
که در واقع برابر است با
*(arr+sizeof(int)*1)
در واقع تو با فرمول
*(array+sizeOf(DataType)*n)
می تونی به عناصر آرایه ای که در حافظه تصور کردی دسترسی پیدا کنی که توش n می گه کدوم عنصر رو می خوای و مشخصه که اگر به جای اون صفر بذاری، عنصر اول اشاره می شه و اگر یک بذاری عنصر دوم و ... این دقیقا همون n است که تو وقتی می خوای راحت به آرایه ها اشاره کنی جلوی
arr[n]
می ذاری.