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 variable için pointer alabildiğinize göre, bu bellek adresindeki değeri nasıl okuyacağınızı ve değiştireceğinizi öğrenmeniz gerekir. İşte burada dereference operatörü (İş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 (pointers) bu kadar güçlü kılan şeydir; bunlara işaret eden bir `pointer` olduğu sürece programınızın her yerinden değişkenleri okuyabilir ve değiştirebilirsiniz.
*) essential hale gelir.* `dereference` operatörü, bir `pointer` 'ın gösterdiği bellek adresinde saklanan değere erişmek için kullanılır. Bir `pointer` değişkeninin önüne * koyduğunuzda, adresi "takip eder" ve orada saklanan gerçek değeri size verir.& (address-of) operatörünün bir değişkenin bellek adresini almak için kullanıldığını, * (dereference) operatörünün ise bu adresteki değere erişmek için kullanıldığını unutmayın.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 Ekleme