Sobes.tech
Junior

Дар бораи фарқиятҳои байни истинод ва ишора дар забони C/C++ нақл кунед.

sobes.tech AI

Ҷавоб аз AI

Референс метавонад ҳамчун номи мустаҳкам барои объект мавҷуд бошад; ишоракунанда суроғаи хотираии объектро дорад.

Хусусият Референс Ишоракунанда
Инициализация Дар вақти эълон бояд инициализатсия шавад. Мумкин нест, ки инициализатсия нашуда бошад.
Навсозӣ Пас аз инициализатсия навсозӣ кардан мумкин нест. Мумкин аст ба объекти дигар ишора кунад.
Арзиши нолӣ Мумкин нест null бошад. Мумкин аст nullptr (C++11) ё NULL (C/C++).
Индекси массив Ба арифметикаи ишоракунанда мустақиман дастгирӣ намекунад. Аритметикаи ишоракунанда дастгирӣ мешавад.
Операторҳо Тарзи истифодаи мустақим (. барои аъзои). * барои дезереференс, -> барои аъзои.
Андоза Андозаи худро надорад, ба андозаи объект ишора мекунад. Андозааш мувофиқ ба андозаи суроға дар систем (одатан 4 ё 8 байт).
Таъин кардани хотира Талаб намекунад таъин кардан/озод кардани хотира. Мумкин аст new/delete талаб кунад (дар C++).
Истифода Баъзан ҳамчун параметрҳо дар функсияҳо барои гузаронидан бо ишора. Барои таъин кардани хотираи динамикӣ, дастрасии пастсуръат.
// Мисоли истифодаи ишора
int x = 10;
int& ref = x; // ref - номи мустаҳкам барои x
ref = 20;     // x ҳоло 20

// Мисоли истифодаи ишоракунанда
int y = 30;
int* ptr = &y; // ptr ба суроғаи y ишора мекунад
*ptr = 40;    // y ҳоло 40

// Ишоракунанда метавонад `nullptr` бошад
int* null_ptr = nullptr;