يک آرايه مجموعه ای از خانه ها متوالی حافظه می باشد که دارای يک نام و يک نوع
می باشند . به هر يک از اين خانه ها يک عنصر آرايه گفته می شود . برای دستيابی
به يک عنصر آرايه ، بايد نام آرايه و شمارنده آن خانه را مشخص کنيم . لذا عناصر
آرايه توسط متغيری به نام انديس مشخص می شوند به همين دليل، آرايه ها را
متغيرهای انديس دار نيز می گويند . نام آرايه ، از قواعد نام گذاری متغيرها
پيروی می کند . نوع آرايه نيز يکی از انواع داده ذکر شده در
مبحث مفاهيم حافظه و انواع داده ای
می باشد . اعلان آرايه ها به صورت زير است :
طول آرايه] نام آرايه نوع داده آرايه];
به عنوان مثال دستور زير آرايه ای به طول 6 ، با نام
num
را از نوع
int
ايجاد می کند .
توجه داشته باشيد که تمام عناصر دارای نام يکسانی می باشند و تنها با انديس از
هم تفکيک می شوند . به عنوان مثال عنصر با انديس 2 دارای مقدار
23560- می باشد ، ضمناً انديس عناصر از 0 شروع می شود .
استفاده از يک عبارت محاسباتی به جای انديس عناصر امکان پذير می باشد ، به
عنوان مثال با فرض اينکه متغير
a
حاوی 2 و متغير
b
حاوی 3 باشد ، دستور زير:
سه واحد به عنصر
num [5]
اضافه خواهد کرد و اين عنصر حاوی عدد 3 می گردد . برای چاپ مجموع سه
عنصر اول آرايه می توانيد از دستور زير استفاده کنيد :
cout << num[0] + num[1] + num[2] << endl;
برای تقسيم عنصر چهارم آرايه بر 2 و قرار دادن حاصل در متغير
x
از دستور زير می توانيد استفاده کنيد :
نکته :
توجه داشته باشيد که عنصر چهارم آرايه با عنصر شماره چهار ( با انديس چهار )
متفاوت می باشد . همانطور که در دستور فوق ديديد عنصر شماره چهار دارای انديس
سه می باشد ، دليل اين امر اينست که انديس گذاری از صفر شروع می شود . در آرايه
فوق عنصر چهارم آرايه
num[3]=-50
می باشد ولی عنصر شماره چهار ( با انديس چهار )
num[4]=32500
می باشد .
همانند متغيرها چند آرايه را نيز می توان توسط يک دستور تعريف کرد :
دستور فوق 100 خانه از نوع عدد صحيح را برای آرايه با نام
b
و 27 خانه از نوع عدد صحيح را برای آرايه با نام
x
در نظر می گيرد .
برای مقدار دهی اوليه به هر يک از عناصر آرايه می توانيد از شيوه زير استفاده
کنيد :
int n[5] = {32 , 27 , 64 , 18 , 95 }
اگر طول آرايه هنگام تعريف آرايه تعيين نشده باشد و ليست مقدار عناصر نوشته شود
، همانند دستور زير :
int n[] = { 1 , 2 , 3 , 4 , 5 }
در اين صورت کامپايلر به تعداد عناصر ليست ، خانه حافظه برای آرايه در نظر می
گيرد ، مثلاً در دستور فوق 5 خانه حافظه برای آرايه
n
در نظر گرفته می شود .
راه ديگری که برای مقدار دهی اوليه به عناصر آرايه وجود دارد استفاده از روش
زير است :
دستور فوق 10 خانه حافظه برای آرايه
num
در نظر می گيرد و مقادير همه آنها را صفر می کند . توجه
داشته باشيد که اگر از دستور زير استفاده کنيم :
تمامی عناصر مقدار 1 را نمی گيرند بلکه عنصر اول آرايه يک می شود و بقيه
عناصر مقدار صفر را می گيرند .
در تعريف آرايه ديديد که طول آرايه را با عدد صحيح ثابتی تعيين می کنيم . هر جا
که از عدد ثابتی استفاده می شود ، متغير ثابت نيز می توان به کار برد .
متغيرهای ثابت به صورت زير تعريف می شوند :
const مقدار متغير = نام متغير ثابت نوع داده متغير ;
به عنوان مثال :
const int arraySize = 10;
دستور فوق عدد 10 را به متغير
arraySize
ثابت انتساب می دهد . توجه داشته باشيد که مقدار يک متغير
ثابت را در طول برنامه نمی توان تغيير داد و نيز متغير ثابت در هنگام تعريف شدن
، مقدار اوليه اش نيز بايد تعيين گردد . به متغيرهای ثابت ، متغيرهای فقط
خواندنی نيز گفته می شود . کلمه "متغير ثابت" يک کلمه مرکب ضد و نقيض می باشد
چون کلمه متغير متضاد ثابت می باشد و اين اصطلاحی است که برای اينگونه متغيرهای
در اکثر زبانهای برنامه نويسی به کار می رود . برنامه زير نحوه تعريف يک متغير
ثابت را نشان می دهد :
#include <iostream.h>
void main()
{
const int x = 7;
cout << "The value of constant variable x is: "
<< x << endl;
}
برنامه فوق عدد 7 را در متغير ثابت
x
قرار می دهد و توسط دستور
cout
آنرا چاپ می کند . همانطور که گفتيم مقدار متغير ثابت در
هنگام تعريف بايد تعيين گردد و نيز ثابت قابل تغيير نمی باشد ، به برنامه زير
توجه کنيد .
#include <iostream.h>
void main()
{
const int x;
x=7;
}
برنامه فوق هنگام کامپايل شدن دو پيغام خطا خواهد داد ، چون متغير ثابت هنگام
تعريف مقدار دهی نشده و نيز در برنامه دستوری برای تغيير مقدار آن آورده نشده
است .
Compiling C:\TCP\BIN\CONST1.CPP:
Error : Constant variable 'x' must be initialized
Error : Cannot modify a const object
مثال :
در برنامه زير طول آرايه توسط متغير ثابتی تعيين می گردد و عناصر آرايه توسط
حلقه
for
مقدار دهی شده و سپس توسط حلقه
for
ديگری ، مقدار عناصر آرايه چاپ می گردد .
#include <iostream.h>
void main()
{
const int arraySize = 10;
int s[ arraySize ];
for ( int i = 0; i < arraySize; i++ )
s[ i ] = 2 + 2 * i;
cout << "Element Value" << endl;
for ( int j = 0; j < arraySize; j++ )
cout << j << "\t " << s[ j ] << endl;
}
خروجی برنامه فوق به صورت زير می باشد :
Element Value
0 2
1 4
2 6
3 8
4 10
5 12
6 14
7 16
8 18
9 20
|