Sobes.tech
Junior

C/C++ tilida havola va ko'rsatkich o'rtasidagi farqlar haqida gapiring.

sobes.tech AI

AIdan javob

Bir referans mavjud ob' uchun takroriy nom sifatida qaralishi mumkin; ko'rsatgich ob'ektning xotira manzilini o'z ichiga oladi.

Xususiyat Referensiya Ko'rsatgich
Initsializatsiya E'lon qilinayotganda initsializatsiya qilinishi kerak. Initsializatsiya qilinmasligi mumkin.
Qayta tayinlash Initsializatsiyadan so'ng qayta tayinlanmaydi. Boshqa ob'ektga murojaat qilishi mumkin.
Null qiymat null bo'lishi mumkin emas. nullptr (C++11) yoki NULL (C/C++) bo'lishi mumkin.
Massiv indeksatsiyasi To'g'ridan-to'g'ri ko'rsatgich arifmetikasini qo'llab-quvvatlamaydi. Ko'rsatgich arifmetikasini qo'llab-quvvatlaydi.
Operatorlar To'g'ridan-to'g'ri ishlatiladi (. a'zolar uchun). * bilan dereferensiya qilish, -> bilan a'zolar uchun.
O'lcham O'z o'lchami yo'q, ob'ekt o'lchamiga murojaat qiladi. Tizimdagi manzil o'lchamiga mos keladi (odatda 4 yoki 8 bayt).
Xotira ajratish Aniq xotira ajratish/erkin qilish talab qilinmaydi. new/delete talab qilishi mumkin (C++ da).
Foydalanish Ko'pincha funksiyalarga parametr sifatida uzatish uchun ishlatiladi. Dinamik xotira ajratish, past darajadagi kirish uchun.
// Referensdan foydalanish misoli
int x = 10;
int& ref = x; // ref - x uchun takroriy nom
ref = 20;     // x endi 20

// Ko'rsatgichdan foydalanish misoli
int y = 30;
int* ptr = &y; // ptr y manziliga murojaat qiladi
*ptr = 40;    // y endi 40

// Ko'rsatgich nullptr bo'lishi mumkin
int* null_ptr = nullptr;