C++ Pointers and Functions

by ck
0 yorum

Pointers and Functions (İşaretçiler ve Fonksiyonlar)

Fonksiyon işaretçileri hakkında en kafa karıştırıcı olan şey muhtemelen onların sözdizimidir. İşaretçinin işaret edeceği fonksiyonların veri türünü, daha sonra yıldız işaretiyle başlayarak işaretçinin adını parantez içinde yazarız. Köşeli parantez içinde, işaretçinin işaret edeceği fonksiyon türlerini parametrelerle birlikte parantezler yapılır. Bunun da gösterdiği gibi, fonksiyon işaretçileri aynı veri türüne ve parametre türlerine (ve aynı zamanda parametre sayısına) sahip işlevlere işaret etmelidir.

Syntax (Sözdizimi)

veri tipi (*degiskenAdi)( parametreler);. 

void (*degiskenAdi)();

Örnek:

#include <iostream>
using namespace std;

void fonks(int x) 
{ 
    cout << "x değeri: " << x << endl; 
} 
  
int main() 
{ 
    void (*fonkPtr)(int) = &fonks; 
  
    (*fonkPtr)(16); 
  
    return 0; 
} 

Çıktı:

x değeri: 16                                                                                                                                                                                        

Örnek:

#include <iostream>
using namespace std;

void fonks1() 
{ 
    cout << "1. Fonksiyon" << endl;
}

void fonks2() 
{ 
    cout << "2. Fonksiyon" << endl;
}

void fonks3() 
{ 
    cout << "3. Fonksiyon" << endl;
}

int main()
{
	void (*fonksPtr)(); 

	fonksPtr = &fonks1; 
	fonksPtr(); 

	fonksPtr = &fonks2; 
	fonksPtr();
	
	fonksPtr = &fonks3; 
	fonksPtr(); 
	
	return 0;
}

Çıktı:

1. Fonksiyon                                                                                                                      
2. Fonksiyon                                                                                                                      
3. Fonksiyon

Örnek:

#include <iostream>
using namespace std;

void degerleriDegistir(double*, double*);

void degerleriDegistir(double* x1, double* x2) 
{
    double gecici;
    gecici = *x1;
    *x1 = *x2;
    *x2 = gecici;
}

int main()
{
    double x = 16.975, y = 457.64;
    
    cout << "Değerlerin değişmeden önceki değerleri:" << endl;
    cout << "x: " << x << endl;
    cout << "y: " << y << endl << endl;

    degerleriDegistir(&x, &y);

    cout << "Değerlerin değiştikten sonraki değerleri:" << endl;
    cout << "x: " << x << endl;
    cout << "y: " << y << endl;
    return 0;
}

Çıktı:

Değerlerin değişmeden önceki değerleri:                                                                                           
x: 16.975                                                                                                                         
y: 457.64                                                                                                                         
                                                                                                                                  
Değerlerin değiştikten sonraki değerleri:                                                                                         
x: 457.64                                                                                                                         
y: 16.975

Şunlar da hoşunuza gidebilir

Yorum Yap

Web sitemizde size en iyi deneyimi sunabilmemiz için çerezleri kullanıyoruz. Bu siteyi kullanmaya devam ederseniz, bunu kabul ettiğinizi varsayarız. Kabul Et Gizlilik Politikası