Sobes.tech
Junior

C/C++ dilində istinad və göstərici arasındakı fərqlər haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

İstinad mövcud obyekt üçün təxəllüs kimi qəbul edilə bilər; göstərici obyektin yaddaş ünvanını saxlayır.

Xüsusiyyət İstinad Göstərici
İbtidaiyyət İstifadə edilməzdən əvvəl təyin edilməlidir. Təyin edilməyə bilər.
Yenidən təyin etmə Təyin edildikdən sonra yenidən təyin edilə bilməz. Digər obyektə işarə edə bilər.
Null dəyər null ola bilməz. nullptr (C++11) və ya NULL (C/C++) ola bilər.
Massiv indeksləşdirmə Birbaşa göstərici hesablamasını dəstəkləmir. Göstərici hesablamasını dəstəkləyir.
Operatorlar Birbaşa istifadə olunur (. üzvlər üçün). * ilə dereferensiya, -> ilə üzvlər üçün istifadə olunur.
Ölçü Öz ölçüsü yoxdur, obyektin ölçüsünə istinad edir. Ölçüsü, sistemdə ünvanın ölçüsünə uyğun (adətən 4 və ya 8 bayt).
Yaddaş ayırma Aydın yaddaş ayırma/azad etmə tələb etmir. new/delete tələb edə bilər (C++-da).
İstifadə Tez-tez funksiyalara parametr kimi ötürmək üçün istifadə olunur. Dinamik yaddaş ayırma, aşağı səviyyəli giriş üçün.
// İstinadın istifadəsi nümunəsi
int x = 10;
int& ref = x; // ref x üçün təxəllüs
ref = 20;     // x indi 20

// Göstəricinin istifadəsi nümunəsi
int y = 30;
int* ptr = &y; // ptr y-nin ünvanına işarə edir
*ptr = 40;    // y indi 40

// Göstərici nullptr ola bilər
int* null_ptr = nullptr;