degistirme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
degistirme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

23 Nisan 2015 Perşembe

Pointer and Swap

     Pointerlar verilerimizin bellekde hangi adreste tutulduklarını gösterir.    
     değişkenTipi* GöstergeAdi şeklinde tanımlanır.
     int türünde bir a pointeri
     int* a;  veya int *a; şeklinde tanımlanır.
     cout << a ; yazarsak a pointerının hangi adresi tuttuğunu görürüz. 
     cout << *a; yazarsak a pointerının tuttuğu adresdeki verinin değerini görürüz. 

    Soru:
    İnt türünde iki adet değişkenimiz olsun. Bu değişkenlerin değerlerini birbiriyle değiştiren bir fonksiyon yazalım.

Kodlar:
#include <iostream>
using namespace std;
void degistir(int *a, int *b);//fonksiyon prototipi
void main(){
    int a = 100;
    int b = 200;
    cout <<"-- degisimden once --"<< endl;
    cout << "a: " << a << " b: " << b << endl;
    degistir(&a, &b);//& adres operatörüdür. a ve b'nin adresini fonksiyona gönderdik.
    cout <<"-- degisimden sonra -- "<< endl;
    cout <<"a: "<< a << " b: " << b << endl;
    system("PAUSE");
}

void degistir(int *a, int *b){
    int x = *a;//a pointerındaki değeri x'a atadı.
    int y = *b;//b pointerındaki değeri y'ye atadı.
    *a = y;//a pointerının değerine y'yi atadı.
    *b = x;//b pointerının değerine x'i atadı.
}

Çıktı: