SORU
20 NİSAN 2011, ÇARŞAMBA


Geçen referans olarak bir dizi

Nasıl başvuru nasıl çalışır, statik olarak ayrılan bir dizi geçiyor mu?

void Func(int (&myArray)[100])
{
}

int main()
{
    int a[100];
    Func(a);
}

(&myArray)[100] herhangi bir anlamı ya da sadece bir sözdizimi referans ile herhangi bir dizi geçmek zorunda mı? Ayrı bir parantez büyük parantez burada izledi anlamıyorum. Teşekkürler.

CEVAP
20 NİSAN 2011, ÇARŞAMBA


Bu bir sözdizimi dizi başvuruları - kullanım (&array) netleştirmek için derleyici istediğiniz bir başvuru için bir dizi yerine (geçersiz) dizinin referanslar int & array[100];.

EDİT: Bazı açıklama.

void foo(int * x);
void foo(int x[100]);
void foo(int x[]);

Bu üç fonksiyon aynı ilan farklı yolları vardır. int * bir parametre alacak şekilde tedavi ediyorlar, onlara herhangi bir boyut dizisi iletebilirsiniz.

void foo(int (&x)[100]);

Bu sadece 100 tamsayı dizileri kabul eder. Güvenle x sizeof kullanabilirsiniz

void foo(int & x[100]); // error

Bu bir "başvurular yasal değil." - dizi olarak ayrıştırılır

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • Pepsi

    Pepsi

    1 Kasım 2005