8.3 Göstəricilər və Cərgələr
C++ dilində göstəricilər cərgələrlə sıx bağlıdır. Cərgənin elementləri yaddaşda ardıcıl yerləşdiyindən göstəricini cərgə boyu “yuxarı-aşağı” sürüşdürməklə cərgənin elementlərinə müraciət etmək, onları dəyişmək, cərgələri funksiyalara parametr kimi ötürmək v.s. mümkündür. Funksiyalara ötürməni növbəti dərsimizdə keçəcəyik. Hələlik isə göstəricilər və cərgələrlərin əlaqəsini örgənək. İlk olaraq göstəricilərin cərgənin elementlərinə mənimsənilməsindən başlayaq. Adi dəyişənlərdə olduğu kimi, eyni qayda ilə cərgə elementlərinin də ünvanlarını göstəricilərə mənimsədə, göstəricilər vastəsilə onların qiymətlərinə mürcaiət edə bilərik. Nümunələrə baxaq.
Nümunə: Aşağıdakı kod tam tipli 5 elementdən ibarət x cərgəsi və y göstəricisi elan edir. Daha sonra x cərgəsinin elementlərinə müxtəlif qiymətlər mənimsədilir.
#include
using namespace std;
int main (){
int i, x[5], *y;
x[0] = 12;
x[1] = 4;
x[2] = 32;
x[3] = 26;
x[4] = 17;
cout << "x -in elementleri evvel:\n";
for(i=0; i<5; ++i)
cout << x[i] << " ";
y = &x[2];
*y = 55;
y = &x[4];
*y = 88;
cout << "\nx -in elementleri sonra:\n";
for(i=0; i<5; ++i)
cout << x[i] << " ";
}
Nəticə:
x -in elementleri evvel:
12 4 32 26 17
x -in elementleri sonra: 12 4 55 26 88
İzahı: Proqramda int tipli 5 elementdən ibarət x cərgəsi və y göstəricisi elan edirik(i-ni nəzərə almayaq sadəlik üçün).
int i, x[5], *y;
x[0] = 12;
x[1] = 4;
x[2] = 32;
x[3] = 26;
x[4] = 17;
cout << "x -in elementleri evvel:\n";
for(i=0; i<5; ++i)
cout << x[i] << " ";
Aşağıdakı nəticə ekranda çap olunur:
x -in elementleri evvel: 12 4 32 26 17
Daha sonra ünvan - & operatoru vastəsilə y göstəricisinə x cərgəsinin 3-cü elementinin ünvanını mənimsədirik:
*y = 55;
y = &x[4];
*y = 88;
cout << "\nx -in elementleri sonra:\n";
for(i=0; i<5; ++i)
cout << x[i] << " ";
Aşağıdakı nəticə ekranda çap olunur:
x -in elementleri sonra: 12 4 55 26 88