Dereference Operatörü
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 3 / 56.
Artık bir değişkene işaretçi alabileceğine göre, o bellek adresindeki değere nasıl erişeceğini ve onu nasıl değiştireceğini öğrenmen gerekiyor. Dereference operatörünün (İşaretçi (pointer) aracılığıyla orijinal değişkeni değiştirmek için dereference operatörünü de kullanabilirsiniz. Bu dolaylı erişim, işaretçileri bu kadar güçlü kılan şeydir - onlara işaret eden bir işaretçiniz olduğu sürece programınızın herhangi bir yerinden değişkenleri okuyabilir ve değiştirebilirsiniz.
*) vazgeçilmez hâle geldiği nokta burasıdır.Dereference operatörü *, bir işaretçinin gösterdiği bellek adresinde depolanan değere erişmek için kullanılır. * işaretini bir işaretçi değişkeninin önüne koyduğunuzda, adresi “izler” ve orada depolanan gerçek değeri verir.Adres operatörünün (&) bir değişkenin bellek adresini almak için, başvuru kaldırma operatörünün (*) ise bu adresteki değere erişmek için kullanıldığını unutma.int number = 42;
int* ptr = &number; // ptr, number'ın adresini saklar
int value = *ptr; // value artık 42 içeriyor*ptr ifadesine yeni bir değer atadığınızda, aslında o bellek konumunda saklanan değeri değiştirmiş olursunuz:*ptr = 100; // number'ı 100'e değiştirir
// number artık 100, onu ptr aracılığıyla değiştirmiş olmamıza rağmenGörev
KolayBir pointer aracılığıyla bir değişkenin değerini değiştirerek dereference operatörünü gösteren bir program oluşturun.
Aşağıdaki input sağlanacaktır:
- Bir
variableiçin ilk değeri temsil eden bir tamsayı pointeraracılığıyla atanacak yeni değeri temsil eden bir tamsayı
Programınız şunları yapmalıdır:
temperatureadında bir tamsayıvariabletanımlayın ve bunu ilkinputdeğeriyleinitializeedintemperaturedeğişkenini gösteren (pointing)tempPtradında birpointeroluşturun (Create)pointer'ıdereferenceederekOriginaldeğeri yazdırın (Print)temperaturedeğerini,pointerüzerinden ikinciinputdeğerine değiştirmek (Change) içindereferenceoperatörünü kullanınpointer'ı tekrardereferenceederek yeni değeri yazdırın (Print)
Aşağıdaki tam çıktı biçimini kullanın:
Original value: [original value]
New value: [new value]Kendin dene
#include <iostream>
using namespace std;
int main() {
// Girdi değerlerini oku
int initialValue, newValue;
cin >> initialValue;
cin >> newValue;
// TODO: Kodunuzu aşağıya yazın
// 1. temperature değişkenini bildir ve initialValue ile başlat
// 2. temperature'a işaret eden tempPtr işaretçisini oluştur
// 3. Print original value using pointer dereference
// 4. newValue kullanarak işaretçi aracılığıyla temperature değerini değiştir
// 5. İşaretçi dereferansı kullanarak yeni değeri yazdır
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İşaretçiler ve Bellek
İşaretçi Nedir?Adres OperatörüDereference OperatörüNull İşaretçilerİşaretçiler ve Diziler'new' ile Dinamik Bellek'delete' ile Belleği Serbest BırakmaÖzet - İşaretçi Pratiği2Vektörler (Dinamik Diziler)
std::vector'a GirişBir Vektör OluşturmaEleman EklemeElemanlara ErişmeVektör BoyutuFor Döngüsü ile YinelemeAralık Tabanlı For DöngüsüEleman SilmeÖzet - Vektör İşlemleri3Proje: Görev Listesi Aracı
Projeye Genel BakışGörev EklemeKendi başına pratik yap: Online C++ derleyicisi