Çalışma 8. int tipli 10 elementdən ibarət x cərgəsi və y göstəricisi elan edin. Dövr operatorundan və y göstəricindən istifadə etməklə x -in elementlərinə 50-dən 59 -a kimi qiymətlər mənimsədin.
Həlli. Proqram kodu aşağıdakı kimi olar:
#include int main (){
int x[10], *y; int i;
// y-e x -i menimsedek y = x;
// y hal-hazirda x -in ilk elementine (x[0]) // muraciet edir
for (i=0; i<10; ++i){
// y -in istinad etdiyi elemente qiymet menimsedek *y = 50 + i;
// y -i cergenin novbeti elementi uzerin surushdurek y = y + 1;
}
}
Göstəricilərlə sətirlərin əlaqəsi
Sətirlər cərgələrin xüsusi - elementlərinin tipi char olan halıdır. Ona görə göstəricilər və cərgələrlə bağlı bütün qaydalar analoji olaraq sətirlərə tətbiq olunur.
Çalışma 9. Tutaq ki, 16 elementi olan s sətrinə "abcdefghijklmnop" qiyməti mənimsətmişik. Əgər char tipi g göstəricisi elan etsək və ona s qiyməti mənimsətsək o hansı simvola istinda edər?
Həlli.g göstəricisini s sətrinə mənimsətdikdə ( g = s; ) g göstəricisi s sətrinin (cərgəsinin) ilk elementinə istinad edər, başqa sözlə 'a' simvoluna.
Çalışma 10. Tutaq ki, 16 elementi olan s sətrinə "abcdefghijklmnop" qiyməti mənimsətmişik. Əgər char tipi g göstəricisi elan etsək və ona s qiyməti mənimsətdikdən sonra göstəricinin qiymətini 1 vahid artırsaq o hansı simvola istinda edər?
Həlli. g göstəricisini s sətrinə mənimsətdikdə ( g = s; ) g göstəricisi s sətrinin (cərgəsinin) ilk elementinə istinad edər, yəni 'a' simvoluna. Daha sonra g -nin qiymətini 1 vahid artırsaq (g = g + 1; ) onda o növbəti elementin üzərinə sürüşər, başqa sözlə 'b' simvolunun.
Çalışma 11.Tutaq ki, 16 elementi olan s sətrinə "abcdefghijklmnop" qiyməti mənimsətmişik. Əgər char tipi g göstəricisi elan etsək və ona s qiyməti mənimsətdikdən sonra göstəricinin qiymətini 5 vahid artırsaq o hansı simvola istinda edər?
Həlli. g göstəricisini s sətrinə mənimsətdikdə ( g = s; ) g göstəricisi s sətrinin (cərgəsinin) ilk elementinə istinad edər, yəni 'a' simvoluna. Daha sonra g -nin qiymətini 5 vahid artırsaq (g = g + 5; ) onda o 5 vahid sonrakı elementin , başqa sözlə 'f' simvolunun üzərinə sürüşər.
Çalışma 12.Tutaq ki, 20 elementli char tipli s sətri və 10 elementli q sətri elan edilib və s sətrinə "abcdefghijklmnop" qiyməti mənimsədilib. Göstəricilərdən və strncpy funksiyasından istifadə etməklə s sətrinin 3-cü simvolu ilə 10 -cu simvolu arasında qalan hissəsini q sətrinə köçürün .
Həlli. Əvvəlcə g göstəricisi elan edək və onu s sətrinin 3 -cü elementi üzərinə sürüşdürək. Bunun üçün əvvəlcə g -ni s -ə mənimsədək, daha sonra onun qiymətini 2 vahid artıraq, aşağıdakı kimi:
g = s;
g = g + 2;
Bu zaman g göstəricisi s sətrinin 3-cü elementi üzərinə sürüşmüş olar. Daha sonra növbəti 7 simvolu (10 -cu simvola qədər) q -yə köçürmək üçün strncpy funksiyasından aşağıdakı kimi istifadə edə bilərik:
strncpy(q,g,7);
Yekun proqram kodu aşağıdakı kimi olar:
#include int main(){
char s[20], q[10], *g;
// s setrine "abcdefghijklmnop" qiymeti yerleshdirek strcpy(s, "abcdefghijklmnop");
// g -ni s -in 3-cu simvolu uzerine surushdurek g = s;
g = g + 2;
// birbasha g = s + 2; ve ya g = &s[2]; yaza da bilerdik
// s -in 3 -cu simvolu ile 10 -cu simvolu arasinda // qalan hissesini q -ye menimsedek strncpy(q,g,7);
}