مفهوم آرایه در برنامه نویسی چیست؟! و چه کاربردی دارد؟!
در برنامهنویسی، مفهومی به نام آرایه (array) وجود دارد که از نظر معنای فارسی به کلمات «آرایه، صف، نظم و آرایش (منظور چیزی مثل آرایش نظامی نه آرایش صورت :D)» تعلق میگیرد. و به لحاظ مفهومی، به مجموعهای از چیزها گفته میشود که در کنارهم و با نظم خاصی قرار دارند! . و درواقع در فرهنگ کامپیوتر نیز این چنین است!
آرایه در برنامه نویسی
وقتی ما متغیری تعریف میکنیم، برای مثال یک متغیر عددی، در ادامه مقداری را نیز به آن اختصاص میدهیم و در دفعات بعدی برای دسترسی به آن متغیر، از نامی که برایش تعریف کردهایم استفاده میکنیم. اما چه میشود اگر بتوان یک ساختاری تعریف کرد که در آن مجموعهای از متغیرها در کنارهم قرار داشته باشند؟!
این ساختار در برنامهنویسی آرایه نامیده میشود و هرعضوی که در آن قرار دارد، شامل یک index (شاخص) منحصر به فردی برای خود میباشد و از این index برای دسترسی به آن عضو استفاده میشود. و در واقع بهتر است بگوییم آرایه مجموعهای از خانهها را در مموری و به صورت گروهی برای اعظای خود در نظر میگیرد.
index آرایهها از 0 شروع میشود و هرخانه در آن آرایه شامل index ای برای خود میباشد. در واقع اولین عضو آرایه همواره index ای برابر 0 داشته و عضو آخر آن index ای برابر یک واحد کمتر از طول آرایه را خواهد داشت. و در اکثر زبانهای برنامهنویسی در زمان دسترسی به یک index ناموجود، خطای out of memory رخ میدهد.
بنابراین به صورت کلی:
- آرایه مجموعهای از یک نوع داده است. (مثلا مجموعهای از اعداد)
- هر عضو این مجموعه شامل یک index است. (که این عدد از 0 شروع میشود)
تفاوت آرایهها در زبانهای برنامهنویسی مختلف
گرچه مفهوم اصلی آرایه در تمامی زبانهای برنامهنویسی یکسان است، اما با این حال، آرایهها در زبانهای برنامهنویسی مختلف ممکن است با یکدیگر تفاوتهای بسیار زیادی داشته باشند! برای مثال در PHP نه نیازی به تعریف نوع مقادیری که میتوان در آرایه قرار داد میباشد و نه اجباری به نوع index! بنابراین میتوان هر نوع دادهای (از جمله یک آرایهی جدید) را درون یک آرایه قرار داد و همچنین هرنوع index ای از جمله عدد و string را برای خانههای آرایه در نظر گرفت! و البته تفاوتهای دیگر نیز جای خود دارند! اما با این وجود هنوز مفهوم «مجموعهای از دادهها و index» در تمامی آنها یکسان است.
آرایههای چندبعدی
وقتی یک آرایه داخل آرایهی دیگری قرار گیرد، حالت آرایه دوبعدی به دست میآورد و اگر همینطور داخلیتر شود، حالت آرایه چندبعدیتر میشود!
اگرچه در زبانهایی مثل PHP و برخی زبانهای برنامهنویسی دیگر میتوان در یک خانه از یک آرایه، یک آرایهی جدید و در خانهی دیگرش مثلا یک عدد یا رشته قرار داد، اما در دیگر زبانهای برنامهنویسی اگر بخواهیم مثلا یک آرایه دوبعدی ایجاد کنیم، بایستی تمام خانههای بُعدِ اول آرایه باشند. البته آرایه دوبعدی به آرایه ماتریسی نیز معروف است.
احتمالا بعدا این پست ویراش شده و موارد جدیدی به آن اضافه شود.
ممنون، مطلب مختصر و مفید بود.