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;