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;