#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;
}