Ana içeriğe atla

Pointerlar ile Fonksiyonların Kullanımı

 

#include <iostream>

#include <cmath>

using namespace std;


/*

void replaceValue(int *ptr);


int main() 

{

//Pointerlar ile Fonksiyonların Kullanımı

// Pointerlar adress tutar ve bu adresdeki veriyi değiştirebiliriz.,

// Neden !!! ??? :  ram de fazladan yer kaplamasını engellemiş olur 

// sadece pointer ram adresinde işlemi yapar 

//böylelikle ram den yer kazanmış oluruz


int x = 70; // sabit değer olarak kalacak ama pointer ile değeri değiştiricez

cout << "value of variable x is " << x << endl;

replaceValue(&x); //19

cout << "value of veriable x after the function is " << x << endl;



return 0; 

}

void replaceValue(int *ptr) 

{

*ptr = 19; //değerimiz artık 19 oldu

cout << "value of veriable x after the function is " << *ptr << endl;

cout << endl;

cout << "ram deki adress : " << ptr << endl;

cout << endl;


//Kodun çıktısı 

// value of variable x is 70

// value of veriable x after the function is 19


// ram deki adress : 0000000936EFF754


// value of veriable x after the function is 19

}

*/

/*

// Sayının Karesini Bulma

float getSquare(float* ptr);


int main() 

{

float number;

cout << "enter a number : " ;

cin >> number;

cout << "suare of number is " << getSquare(&number) << endl;


return 0;

}

float getSquare(float *ptr) //parametreleri pointer olarak gönderdik.

{

return *ptr * *ptr; // girilen sayı 5 ise 5*5 = 25 değeri döner // 15.5 * 15.5 = 240.25

}

//number değişkenimiz

// getSquare(&number) içerisinden adresi gönder,

// girilen sayıyı return *ptr * *ptr; çarpma işlemi

// çarpma işlemini nerede yaptık tabiki pointer adresinin içindeki number değerini alıp değeri çarparak

// nedemek bu !! ramda pointer adresinin tutuluduğu yerde işlemi yaptık ramden yer kazandık

*/


// fonksiyonun kendisi parametre olursa !!!

// Çarma adında ikitane fonksiyon oluşturalım

int multiplication(int x, int y) 

{

return x * y;

}

int addition(int x, int y) 

{

return x + y;

}

// pointer 'ı fonksiyon olarak oluşturma

int main() 

int (*func)(int, int); //fonksiyonu pointer olarak tanımladık // iki parametre alacak

func = multiplication;

cout << "x*y = " << func(7, 10) << endl; // 70

cout << endl;

func = &addition;

cout << "x+y= " << (*func) (7, 10) << endl; // 17


return 0; 

}

Bu blogdaki popüler yayınlar

C++ float double string Aritmatik işlemler

  #include <iostream> using namespace std; //void fonk()  //{ // cout << "Merhaba\n"; //} // //int main()  //{ // cout << "Merhaba C++\n"; // // fonk(); // return 0; //} /* int main()  { //Değişkenler rakam ile başlayamaz //Değişken isimlerinde türkçe karakter olmaz //değişken isimleride boşluk olmaz //Değişken isimlerinde nokta vb karakter olmaz //******************************************** //int ram'da 4 byte yer kaplıyor -2147483648 to 2147483647 //char 1 byte  (ASCII tablosu) //bool 1 byte //float 4 byte //double 8 byte //CPU ramdan byte byte okur //Void herhangi bir return etmiyecekse kendi aldığı değerleri kullanır.Bir değer döndürmez. string isim; isim = "Kaan"; int yas; yas = 22; cout << "Bir zamanlar " << isim << " isminde bir genc varmis." << endl << isim << " " << yas << " yasindaymis." ...

C++ try catch, Call by Value, Call by Referans Kullanımı

  #include <iostream> using namespace std; //int main()  //{ // int bolunen, bolen; // cout << "Lutfen bolunen sayiyi giriniz : "; // cin >> bolunen; // cout << "Lutfen bolen sayiyi giriniz : "; // cin >> bolen; // // int sonuc; // // try{ // if (bolen == 0) // throw 99;//Burada throw için herhangi bir tam sayı girilir.örn: negatif sayılar gibi durumlar için çoğaltılabilir // sonuc = bolunen / bolen; // // cout << "Sonuc : " << sonuc; // } // catch(int hataKodu){ // cout << "Bolen sayi sifir olmamali !!" << endl; // } // // cout << endl; // return 0; //} /* try catch Kullanımı :  * try catch kullanıcının beklenmedik bir girdi vermesi sonucu  * programın çökmesini engllemek amacı ile kullanılır * Ayrıca veri tabanı bağlantılarında bağlantının olmaması ve  * işlem sonrasında veri tabanı bağlantısını kapatma veya programın başlangıcında bağlantıyı a...

Pointer ve & (ampersant) Konusunu Kavrayalım

  #include <iostream> #include <string> using namespace std; /* int main()  {  int x = 7; cout << "x 'in degeri : " << x << endl; cout << "x 'in RAM deki adresi : " << &x << endl;  // & ile ramdeki ilk adres değeri  000000D3ED4FFCF4 ni bulduk  // int 4 byte oldugundan bu adresde dahil 4 byte 'lik yerin tamamını hesaplar // ama bize  4 byte lik adresin ilk değerini verir. return 0;  } */ /* int main() { // Pointer  ve & (ampersant) Konusunu Kavrayalım int x = 7; int *p = &x; // pointer ile x 'in adres değerini bulma cout << "x 'in degeri : " << x << endl; cout << "x 'in & ile RAM deki adresi : " << &x << endl; //pointer ile gösterimi cout <<"pointer p ile adres degeri : "<< p << endl; cout << "*p ile ( *p = &x) x in pointer degeri : " <...