Тоshkеnт ахborot техnоlоgiyаlari univеrsiтетi



Yüklə 418 Kb.
səhifə38/42
tarix17.10.2023
ölçüsü418 Kb.
#156478
1   ...   34   35   36   37   38   39   40   41   42
С РАХМ

# include
char c = 44; // char tipidagi o'zgaruvchi
char *pc = &c; // char tipidagi pointer
int main ()
{
cout << "&*pc ning qiymati: " << &*pc << endl;
cout << "*&pc ning qiymati: " << *&pc << endl;
cout << "c ning hotiradagi adresi: " << &c << endl;
cout << "pc pointerning qiymati: " << pc << endl;
cout << "c ning qiymati: " << c << endl;
cout << "*pc ning qiymati: " << *pc << endl;
return (0);
}
Ekranda:
&*pc ning qiymati: 0x4573da55
*&pc ning qiymati: 0x4573da55
c ning hotiradagi adresi: 0x4573da55
pc pointerning qiymati: 0x4573da55
c ning qiymati: 44
*pc ning qiymati: 44
Demak, &*pc va *&pc ayni ishni bajarar ekan, yani * va & operatorlari
bir-birining teskarisidir. Hotiradagi adres ekranga boshqa ko'rinishda
chiqishi mumkin. Bu mashina va kompilyatorga bog'liqdir.
POINTER ARGUMENTLI FUNKSIYALAR
Funksiylar ikki argumentlariga qarab ikki turga bo'linadi degan edik.
Argumentlar qiymat bo'yicha, yoki ko'rsatkich bo'yicha berilishi mumkin edi.
Qiymat bo'yicha berilgan argumentning funksiya chaqirig'iga nushasi beriladi.
Ko'rsatkich bo'yicha argument chaqirig'ida, funksiyaga kerakli argumentga
ko'rsatkich beriladi. Ko'rsatkich bo'yicha chaqiriqni ikki usulda bajarish
mumkin, birinchi usul &-ko'rsatkichlar orqali amalga oshiriladi. Ikkinchi
usulda esa pointerlar qo'llaniladi.
Pointerlar bilan chaqishning afzalligi (qiymat bo'yicha chaqiriq bilan
solishtirganda) shundagi, agar ob'ektlar katta bo'lsa, ulardan nusha olishga
vaqt ketqizilmaydi. Undan tashqari funksiya ob'ektning asl nushasi bilan
ishlaydi, yani ob'ektni o'zgartura oladi. Funksiya faqat bitta ob'ektni yoki
o'zgaruvchini return ifodasi yordamida qiytara olgani uchun, oddiy yol bilan,
qiymat bo'yicha chaqiriqda funksiya faqat bitta o'zgaruvchining qiymatini
o'zgartira oladi. Agar pointerlarni qo'llasak, bittadan ko'p ob'ektlarni
o'zgartirishimiz mumkin, huddi &-ko'rsatkichli chaqiriqdagi kabi.
Funksiya chaqirig'ida esa, biz o'zgaruvchilarning adresini qo'llashimiz kerak.
Buni & adres olish operatori yordamida bajaramiz. Massivni berayatganda esa
adresni olish kerak emas, chunki massivning ismining o'zi massiv birinchi
elementiga pointerdir.
Pointerlarni qo'llab bir dastur yozaylik.
// Pointer argumentli funksiyalar

Yüklə 418 Kb.

Dostları ilə paylaş:
1   ...   34   35   36   37   38   39   40   41   42




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin