İşlev Parametreleri Olarak C ++ Dizileri Geçirme (Örneklerle)

Bu eğitimde, tek boyutlu ve çok boyutlu bir diziyi C ++ 'da bir fonksiyon parametresi olarak örnekler yardımıyla nasıl geçireceğimizi öğreneceğiz.

C ++ 'da dizileri bir fonksiyona argüman olarak geçirebiliriz. Ve ayrıca bir fonksiyondan dizileri döndürebiliriz.

Dizileri işlev bağımsız değişkeni olarak geçirmeyi öğrenmeden önce, C ++ Dizileri ve C ++ İşlevleri hakkında bilgi sahibi olduğunuzdan emin olun.

Dizileri İşlev Parametreleri Olarak Geçirme Sözdizimi

Bir diziyi bir işleve geçirmenin sözdizimi şöyledir:

 returnType functionName(dataType arrayName(arraySize)) ( // code )

Bir örnek görelim,

 int total(int marks(5)) ( // code )

Burada, intişleve marks adında bir tür dizisi geçirdik total(). Dizinin boyutu 5'tir.

Örnek 1: Tek Boyutlu Diziyi Bir İşleve Aktarma

 // C++ Program to display marks of 5 students #include using namespace std; // declare function to display marks // take a 1d array as parameter void display(int m(5)) ( cout << "Displaying marks: " << endl; // display array elements for (int i = 0; i < 5; ++i) ( cout << "Student " << i + 1 << ": " << m(i) << endl; ) ) int main() ( // declare and initialize an array int marks(5) = (88, 76, 90, 61, 69); // call display function // pass array as argument display(marks); return 0; )

Çıktı

 İşaretlerin görüntülenmesi: Öğrenci 1: 88 Öğrenci 2:76 Öğrenci 3:90 Öğrenci 4:61 Öğrenci 5:69

Buraya,

  1. Argüman olarak bir dizi geçirerek bir işlevi çağırdığımızda, sadece dizinin adı kullanılır.
     display(marks);
    Burada argüman işaretleri, dizi işaretlerinin (5) ilk elemanının hafıza adresini temsil eder.
  2. Ancak, display()işlevin parametresine dikkat edin .
     void display(int m(5))
    Burada, köşeli parantezler de dahil olmak üzere işlev parametresindeki dizinin tam bildirimini kullanıyoruz ().
  3. İşlev parametresi, int m(5)değerine dönüşür int* m;. Bu, dizi işaretleriyle gösterilen aynı adresi gösterir. Bu, işlev gövdesinde m (5) 'i işlediğimizde, aslında orijinal dizi işaretlerini değiştirdiğimiz anlamına gelir.
    C ++ bellek ve zamandan tasarruf etmek için bir diziyi bir işleve bu şekilde geçirmeyi işler.

Çok Boyutlu Diziyi Bir Fonksiyona Geçirme

Çok boyutlu dizileri de işleve argüman olarak iletebiliriz. Örneğin,

Örnek 2: Çok Boyutlu Diziyi Bir İşleve Aktarma

 // C++ Program to display the elements of two // dimensional array by passing it to a function #include using namespace std; // define a function // pass a 2d array as a parameter void display(int n()(2)) ( cout << "Displaying Values: " << endl; for (int i = 0; i < 3; ++i) ( for (int j = 0; j < 2; ++j) ( cout << "num(" << i << ")(" << j << "): " << n(i)(j) << endl; ) ) ) int main() ( // initialize 2d array int num(3)(2) = ( (3, 4), (9, 5), (7, 1) ); // call the function // pass a 2d array as an argument display(num); return 0; ) 

Çıktı

 Değerlerin Görüntülenmesi: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

Yukarıdaki programda isimli bir fonksiyon tanımladık display(). İşlev int n()(2), bağımsız değişken olarak iki boyutlu bir dizi alır ve dizinin öğelerini yazdırır.

Fonksiyonu çağırırken, fonksiyon argümanı olarak sadece iki boyutlu dizinin adını iletiriz display(num).

Not : Dizideki satır sayısını belirtmek zorunlu değildir. Bununla birlikte, sütun sayısı her zaman belirtilmelidir. Bu yüzden kullandık int n()(2).

Fonksiyon argümanı olarak 2'den fazla boyutlu dizileri de geçirebiliriz.

C ++ Bir İşlevden Dizi Döndürme

Ayrıca fonksiyondan bir dizi döndürebiliriz. Ancak, gerçek dizi döndürülmez. Bunun yerine dizinin ilk elemanının adresi işaretçiler yardımıyla döndürülür.

Gelecek eğitimlerde bir işlevden dizileri döndürmeyi öğreneceğiz.

Ilginç makaleler...