1.                        

C++ Dersleri - 18)POİNTERLAR -1[ÇEVİRİ]

'C/C++' forumunda Hattab tarafından 10 Şubat 2016 tarihinde açılan konu

  1. Hattab

    Hattab New Member

    Katılım:
    22 Ekim 2015
    Mesaj:
    550
    Beğeniler:
    4
    Ödül Puanları:
    0
    C++ pointerlar konusu kolaydır ve öğrenmesi zevklidir.Bazı C++ taskları pointerlar ve diğer C++ taskları(dinamik hafıza al********) ile birlikte çalışır.Onlarsız çalışamaz.

    Bildiğiniz gibi, her değişken bir hafıza adresine sahiptir ve hafıza adresleri onların erişilebilmeleli için kullanılır.Değişkenler hafızadaki adreslerini ise (&) operatörü ile alabiliriz.Aşağıda , tanımlanmış bir değişkenin adresi ekrana yazdırılmıştır:

    [HASHTAG]#include[/HASHTAG] <iostream>

    using namespace std;

    int main ()
    {
    int var1;
    char var2[10];

    cout << "Address of var1 variable: ";
    cout << &var1 << endl;

    cout << "Address of var2 variable: ";
    cout << &var2 << endl;

    return 0;
    }

    Yukardaki kodu çalıştırdığınızda , aşağıdaki sonuçlar gibi bir çıktı verir:
    Address of var1 variable: 0xbfebd5c0
    Address of var2 variable: 0xbfebd5b6

    Pointerlar Nedir?

    Bir pointer , bir başka değişkenin hafızadaki adresini tutan değişkendir.Aynı sizin tanımladığınız değişkenler ve sabitler gibi.Aşağıda bir pointer değişkeninin tanımlanması gösterilmiştir:
    type *var-name;

    Burda type , pointer'in base tipidir.Ve C++'da geçerli olan bir tip olmalıdır.var-name ise pointerin adıdır.Kullandığımız yıldız işareti çarpma işleminde kullandığızla aynısı.Fakat, bu ifadede,yıldız değişkenin bir pointer olduğunu gösterir.Aşağıda geçerli pointer tanımlamaları örneklenmiştir:

    int *ip; // pointer to an integer
    double *dp; // pointer to a double
    float *fp; // pointer to a float
    char *ch // pointer to character

    Tüm pointerların değerinin aslı, hafıza adresini temsil eden long hexademical değerdir.Pointerların farklı tipleri arasındaki tek fark adresini göstereceği değişkenin tipinde olmasıdır.

    C++'da Pointer Kullanımı

    Çoğunlukla yaptığımız bir kaç önemli işlem vardır:
    (a) Pointer değişkenini tanımlarız
    (b)Bir değişkenin adresini pointer'a atarız(atama yaparız).
    (c)Son olarak pointer değişkenini kullanarak gösterdiğimiz adrese erişiriz.

    Aşağıda bir örnek verilmiştir:

    [HASHTAG]#include[/HASHTAG] <iostream>

    using namespace std;

    int main ()
    {
    int var = 20; // actual variable declaration.
    int *ip; // pointer variable

    ip = &var; // store address of var in pointer variable

    cout << "Value of var variable: ";
    cout << var << endl;

    // print the address stored in ip pointer variable
    cout << "Address stored in ip variable: ";
    cout << ip << endl;

    // access the value at the address available in pointer
    cout << "Value of *ip variable: ";
    cout << *ip << endl;

    return 0;
    }

    Yukardaki kodu çalıştırdığımızda aşağıdaki sonucu verir:
    Value of var variable: 20
    Address stored in ip variable: 0xbfc601ac
    Value of *ip variable: 20

    C++'da Pointerların Detayları

    Pointerlar basit ama çok fazla kavram içerirler ve bunlar c++ programcıları için çok önemlidir.Aşağıda pointer konseptleri ile ilgili bir c++ programcısının bilmesi gereken detayları gösterir:

    Konsept Tanım
    C++ Null Pointers C++ ,sıfır tanımlı birkaç standart kütüphanin değeri ile bir sabit null pointeri destekler.
    C++ pointer arithmetic Pointerlarla kullanılabilecek 4 adet operatör vardır (++,--,+,-)
    C++ pointers vs arrays Aralarında çok yakın bir ilişki vardır.
    C++ array of pointers Pointerları bir arrayda depolayabilirsiniz.
    C++ pointer to pointer Pointeri pointerla point edebilirsiniz [​IMG]
    Passing pointers to functions Bir fonksiyona parametre olarak pointer gönderebilirsiniz.
    Return pointer from functions Bir fonksiyon pointer değeri döndürebilir.

    Alıntıdır.
     

Bu Sayfayı Paylaş

Share