Menyerahkan Array ke Fungsi C ++

Passing An Array Function C



Susunan adalah sekumpulan elemen dengan jenis data yang sama. Banyak fungsi dilakukan pada susunan sama ada dalam program utama atau di luarnya, dalam fungsi. Dalam C ++, jika berlaku fungsi, kita perlu meneruskannya. Ini dilakukan melalui parameter sebagai argumen. Argumen-argumen ini boleh terdiri dari pelbagai cara, baik array yang besar atau melalui array pointer. Dalam tutorial ini, kita akan membahas beberapa aspek utama pemindahan array menggunakan parameter fungsi yang berbeza.

Sintaks

[Kembalimenaip] [namafungsi] (datamenaipnama susunan[susunanukuran])

{

fungsibadan

}

Contoh 1

Pertimbangkan contoh di mana kita mesti mencetak markah pelajar dalam program C ++. Cetakan ini akan diambil dalam fungsi yang terpisah dan bukannya pada program utama. Sebaliknya, kami akan mengambil input dalam program utama dan akan memindahkan nilai-nilai ini ke fungsi sebagai parameter. Pertimbangkan fungsinya. Dalam parameternya, terdapat pemboleh ubah jenis data array yang akan menerima nilai array. Susunan lengkap dinyatakan di sini. Tanda akan dipaparkan dengan bantuan untuk gelung. Seperti dalam tatasusunan, kita memerlukan gelung untuk mendapatkan cetakan daripadanya.









Melangkah ke fungsi utama, kami menyatakan array dengan ukuran dan nilai di dalamnya. Seperti kita mesti memanggil fungsi. Jadi kaedahnya ialah kita menulis nama fungsi dengan nama array dalam parameter sebagai argumen. Kami tidak menentukan ukuran array.



Paparan(tanda);

Argumen dalam parameter menyiratkan alamat memori array. Dalam parameter header fungsi, int m [7] diubah menjadi int * m. Ini termasuk alamat yang sama dengan susunan asal. Apabila kita menggunakan m [5] dalam badan fungsi, kita akan memanipulasi susunan asal.





Paparan kosong(int m[7] )

Dalam sistem operasi Linux, mendapatkan output melalui terminal memerlukan beberapa prasyarat untuk dipasang. Ia memerlukan penyusun untuk menyusun dan kemudian melaksanakan kod di terminal arahan. G ++ digunakan dalam C ++ untuk penyusunan.



$g ++ -ataukod3 kod3.c

$./kod3

Di mana –o digunakan untuk menyimpan output dari file sumber ke file output.

Dari output, anda dapat melihat bahawa semua angka yang dimulakan dalam array dalam fungsi utama dilewatkan dan ditampilkan melalui fungsi paparan.

Contoh 2

Contoh lain mengenai parameter yang melewati parameter adalah menyampaikan array multidimensi ke fungsi. Susunan dua dimensi (2d) digunakan di sini. Dalam fungsi utama, kita perlu memulakan array.

Pelbagai int[barisan][ruangan]

Permulaan array 2d merangkumi baris dan lajur. Dan pesanan mereka harus dikekalkan sepanjang program. Susunan 2d dimulakan dengan dua nombor dalam tanda kurung. Seperti yang telah kita jelaskan 2 lajur dalam inisialisasi.

Paparan(pada satu);

Kami hanya akan menggunakan nama array dalam parameter sebagai argumen.

Sekarang kita akan melihat fungsi fungsi paparan. Ketika fungsi dimulakan, diperlukan pemboleh ubah array untuk menerima array yang dilalui oleh panggilan fungsi melalui program utama.

Paparan kosong(int n[][2] )

Wajib menyebut bilangan lajur. Sebagai perbandingan, tidak penting dalam hal baris. Itulah sebabnya kami membiarkan tanda kurung baris kosong di sini kerana kami menggunakan gelung untuk memaparkan hasilnya. Tetapi dalam kes array 2 dimensi, kami menggunakan gelung bersarang. Ia mengandungi dua untuk pernyataan dengan 2 pemboleh ubah di dalamnya.

Kita dapat melihat output dengan menggunakan penyusun yang sama. Anda dapat melihat hasil bahawa setiap nilai dipaparkan secara berasingan dengan baris dan nombor lajur.

Contoh 3

Contoh ini agak berbeza dengan yang sebelumnya. Dalam contoh ini, kita menyebutkan ukuran array dalam parameter fungsi panggilan. Dan dalam deklarasi fungsi, pemboleh ubah juga diperkenalkan untuk menerima ukuran array.

Bermula dari program utama, array diinisialisasi dengan nilai.

Purata = mendapat Purata(seimbang,5);

Hasilnya akan disimpan dalam pemboleh ubah rata-rata. Daripada hanya meneruskan nama array, ukuran array juga ditambahkan ke parameter.

Parameter ini juga mengandungi pemboleh ubah jenis array dan jenis data integer untuk menerima ukuran array. Jenis program utama adalah int kerana akan menerima nilai integer dari fungsi. Jika tidak, ia tidak sah dalam kes lain.

Sekarang kita akan melihat outputnya. Nilai ini dapat dilihat melalui gambar yang diperoleh dari fungsi.

Contoh 4

Contoh ini berkaitan dengan menentukan bilangan maksimum dalam array, sebenarnya, dari dua tatasusunan. Di sini kita memulakan dua susunan dalam program utama. Kedua-dua array secara berasingan dihantar ke fungsi dalam panggilan fungsi yang berasingan

cetakMax(arr1);

cetakMax(arr2);

di mana printMax adalah nama fungsi dan arr adalah array. Hasilnya tidak akan kembali dari fungsi dan dipaparkan di sana. Untuk gelung akan mengira bilangan maksimum dalam kedua-dua tatasusunan. If-statement digunakan di dalam untuk loop. Tajuk fungsi adalah:

batal cetakMax(int arr[5])

Oleh kerana kedua-dua array mengandungi nilai yang berbeza, kedua hasilnya akan berbeza.

Contoh 5

Contoh ini adalah ringkasan semua jenis array yang melalui parameter. Ini mungkin berukuran, tidak berukuran atau tatasusunan penunjuk. Kami akan menganggapnya satu persatu.

Dalam program utama, setiap fungsi dinyatakan terlebih dahulu. Anda boleh menunjukkan perbezaan deklarasi mereka.

Int jumlah1(int tmp[5]);

Int jumlah2(int tmp[]);

Int jumlah3(int*tmp);

Ketiga susunan ini menggambarkan bahawa tatasusunan dapat dilalui yang mempunyai parameter ini dalam fungsi.

Setelah inisialisasi fungsi, kami mempunyai program utama di mana array dinyatakan. Tidak seperti contoh sebelumnya, satu susunan diinisialisasi dan bukannya dua, tetapi disusun dalam tiga cara yang berbeza. Sekarang kita akan melihat panggilan fungsi yang dibuat di sini.

Jumlah = jumlah1(jualan);

Jumlah = jumlah2(jualan);

Jumlah = sume3(jualan);

Output ditampilkan dalam fungsi utama, sehingga pemboleh ubah dinyatakan menerima nilai yang dikembalikan oleh fungsi. Dari ketiga-tiga panggilan fungsi, anda dapat melihat bahawa di sini parameternya sama. Setiap array hanya mengandungi nama array. Tetapi parameter fungsi yang menerima array berbeza.

Bahagian dalam ketiga fungsi adalah sama, kerana jumlah semua nombor dikira dari penggunaan loop For. Metodologi dan nilai array adalah sama; hanya terdapat diskriminasi antara parameter fungsi. Oleh itu, terbukti bahawa kita boleh menggunakan kaedah yang berbeza untuk menerima larik atau melakukan fungsi yang sama, dan jawapannya sama. Kami dapat mengesahkannya dengan memeriksa output. Dengan menggunakan prosedur penyusunan yang sama, kita akan mendapat output yang ditunjukkan dalam gambar yang dilampirkan di bawah.

Anda dapat melihat bahawa jawapannya adalah sama untuk ketiga-tiga fungsi yang digunakan.

Kesimpulannya

Dalam artikel ini, pengguna akan mengetahui kaedah lulus array dalam parameter. Susunan dapat dikendalikan dalam banyak kes ketika mengembalikan nilai atau menyampaikannya dalam argumen.