SORU
13 AĞUSTOS 2010, Cuma


Bir fonksiyon içinde Return dizi

6* *bir işleve geçirilen bir dizi int arr[5] var:

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  1. Bu dizi nasıl dönebilirim?
  2. Nasıl kullanılacağını, geri döndüm ki bir işaretçi nasıl erişmek için gidiyorum ben?

CEVAP
13 AĞUSTOS 2010, Cuma


Bu durumda, eğer dizi değişken arr gerçekten de örtülü bir dönüştürme tarafından bellekte dizinizi blok, başlangıcına bir işaretçi olarak tedavi edilebilir. Bu kullandığınız komut:

int fillarr(int arr[])

Sadece sözdizimsel şeker. Gerçekten bu ile değiştirin ve hala işe yarar:

int fillarr(int* arr)

İşlevinden dönmek istediğini aynı anlamda, aslında dizideki ilk öğe için bir işaretçi.

int* fillarr(int arr[])

Ve hala senin gibi kullanmak mümkün olacak normal bir dizi:

int main()
{
  int y[10];
  int *a = fillarr(y);
  cout << a[0] << endl;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009