1.                                                

C++ Dersleri - 25)POİNTER - 9 [Ç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

    FONKSİYONUN POİNTER TİPİNDE DEĞER DÖNDÜRMESİ

    Son bölümde c++'nın fonksiyondan nasıl array tipinde değer döndürdüğünü gördüğümüz gibi , aynı şekilde pointer da döndürmemize izin verilir.Bunu yapmak için, aşağıdaki örnekteki gibi pointer döndüren bir fonksiyon deklare etmek zorunda olurdunuz:
    int * myFunction()
    {
    .
    .
    .
    }

    Hatırlanacak ikinci nokta ise, bu işlemi bu şekilde yapmanın iyi bir fikir olamamasıydı.Bu yüzden lokal değişkenleri static olarak tanımlarız.

    Şimdi , 10 tane rastgele sayı üretecek ve geriye ,pointeri temsil eden array adını döndüren bir fonksiyon düşünelim:

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

    using namespace std;

    // function to generate and retrun random numbers.
    int * getRandom( )
    {
    static int r[10];

    // set the seed
    srand( (unsigned)time( NULL ) );
    for (int i = 0; i < 10; ++i)
    {
    r = rand();
    cout << r << endl;
    }

    return r;
    }

    // main function to call above defined function.
    int main ()
    {
    // a pointer to an int.
    int *p;

    p = getRandom();
    for ( int i = 0; i < 10; i++ )
    {
    cout << "*(p + " << i << ") : ";
    cout << *(p + i) << endl;
    }

    return 0;
    }

    Yukardaki kodların derlendikten sonra verdiği sonuçlar şu şekilde:
    624723190
    1468735695
    807113585
    976495677
    613357504
    1377296355
    1530315259
    1778906708
    1820354158
    667126415
    *(p + 0) : 624723190
    *(p + 1) : 1468735695
    *(p + 2) : 807113585
    *(p + 3) : 976495677
    *(p + 4) : 613357504
    *(p + 5) : 1377296355
    *(p + 6) : 1530315259
    *(p + 7) : 1778906708
    *(p + 8) : 1820354158
    *(p + 9) : 667126415

    Alıntıdır.
     

Bu Sayfayı Paylaş

Share