Nəticə:
İkiqat göstəricilər və ikiölçülü massivlər.
Göstəricilərlə massivlərin əlaqəsi ilə tanış olduq. İndi isə ikiqat göstəricilərlə, ikiölçülü massivlərin əlaqəsini öyrənək. Hər bir ikiölçülü massivə həmin tipdən olan ikiqat göstərici kimi baxmaq olar. Tutaq ki, aşağıdakı kimi int tipli ikiölçülü x massivi və ikiqat y göstəricisi elan etmişik.
int x[5][5], **y;
x və y hər ikisi ikiqat göstərici olduğundan yaza bilərik.
y = x;
Bu mənimsətmədən sonra y[2][3] ilə x massivinin müvafiq elementinə(x[2][3]) müraciət edə bilərik.
Bir göstəricinin qiyməti digəri ilə müqayisə edilə bilər. Lakin göstəricilərin müqayisəsinin mənasnın olması üçün müqayisə edilən göstəricilər bir-biri ilə müəyyən şəkildə əlaqəli olmalıdır. Çox vaxt belə bir əlaqə hər iki göstərici eyni massivin elementlərinə işarə etdikdə qurulur. Məsələn, eyni massivə işarə edən iki göstərici (A və B adlı) verilmişdir. Əgər A B-dən kiçikdirsə, onda A göstəricisi indeksi B göstəricisinin ünvanladığı elementin indeksindən kiçik olan elementə işarə edir. Belə müqayisə xüsusilə sərhəd şərtlərini müəyyən etmək üçün faydalıdır.
Misal. Göstəricilərin müqayisəsinə aid proqram nümunəsi
#include
using namespace std;
int main()
{
int num[10];
int *start, *end;
start = num;
end = &num[9];
while(start <= end) {
cout << "Eded daxil edin: ";
cin >> *start;
start++;
}
start = num; /* Göstəricinin qiymətinin bərpası
*/
while(start <= end) {
cout << *start << ' ';
start++;
}
return 0;
}
Funksiyaya göstəricinin ötürülməsi
C++ dilində istənilən tipdən olan göstəricini funksiyaya parametr olaraq ötürə bilərik və hətta funksiya özü də göstərici tipli nəticə qaytara bilər.
Parametri int tipli göstərici olan fn1 funksiyasının elanını nəzərdən keçirək.
Nümunə. Göstəricinin funksiyaya ötürülməsi.
#include
#include
using namespace std;
void fn1 (int *j)
{
*j = 100;
}
int main()
{
int i;
int *p;
p = &i; // p gostericisi i deyiseninin unvanini saxlayir.
fn1(p);
cout << i;
getch();
}
Əgər massiv funksiyaya arqument kimi ötürülürsə, ona uyğun formal parametr göstərici kimi elan edilə bilər:
void display(int *num)
{
int i;
for(i=0; i<10; i++)
cout << num[i] << ' ';
}
Təsvirdə num-massivin adıdır və funksiyaya göstərici kimi ğtürülür.
Əgər massiv funksiya arqumenti kimi istifadə olunursa, o zaman həmin massivin ünvanı funksiyaya ötürülür. Bu o deməkdir ki, funksiya çağırışında funksiyanın gövdəsində massivin faktiki məzmunu potensial olaraq dəyişə bilər.
Do'stlaringiz bilan baham: |