26 / 90

C++ Passing Arrays to Functions

C++ massivlarni funksiyaga uzatish

C++ da biz massivlarni funksiyaga argument sifatida berishimiz mumkin. Shuningdek, biz funksiyadan massivlarni qaytarishimiz mumkin.

Massivlarni funksiya argumenti sifatida o'tkazish haqida bilishdan oldin, C++ Arrays va C++ Functions haqida bilishingizga ishonch hosil qiling.

Sintaksis

Massivni funksiyaga o'tkazish sintaksisi:

example.cpp
returnType functionName(dataType arrayName[]) {
    // kod
}

1-misol: Bir o‘lchovli massivni funksiyaga o‘tkazish

example.cpp
// C++ dasturi 5 talabaning baholarini ko'rsatish uchun

#include <iostream>
using namespace std;

const int ARRAY_SIZE = 5;

// belgilarni ko'rsatish funksiyasini e'lon qilish
// parametr sifatida 1d massivni oling
void display(int m[]) {
    cout << "Displaying marks: " << endl;

    // massiv elementlarini ko'rsatish
    for (int i = 0; i < ARRAY_SIZE; ++i) {
        cout << "Student " << i + 1 << ": " << m[i] << endl;
    }
}

int main() {

    // 
    int marks[ARRAY_SIZE] = {88, 76, 90, 61, 69};
    
    // qo'ng'iroqni ko'rsatish funksiyasi
    // massivni argument sifatida o'tkazing
    display(marks);

    return 0;
}

Chiqish

kod
Displaying marks: 
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69

Bu yerga,

  1. Argument sifatida massivni berish orqali funksiyani chaqirganimizda, faqat massiv nomidan foydalaniladi. display(marks); Bu yerda argument belgilari massiv belgilarining birinchi elementining xotira manzilini ifodalaydi[5].
  2. Biroq, display() funksiyasining parametriga e'tibor bering. void display(int m[]) Bu erda biz faqat butun sonlar qatorini kutmoqdamiz. C++ xotira va vaqtni tejash uchun massivni funksiyaga shu tarzda o'tkazishni boshqaradi.

Ko'p o'lchovli massivni funksiyaga o'tkazish

Multidimensional arrays ni funksiyaga argument sifatida ham yuborishimiz mumkin. Masalan,

2-misol: Funksiyaga ko‘p o‘lchovli massivni o‘tkazish

example.cpp
// Ikki elementni ko'rsatish uchun C++ dasturi
// funksiyaga o'tkazish orqali o'lchovli massiv

#include <iostream>
using namespace std;

// funksiyani aniqlang
// 2d massivni parametr sifatida o'tkazing
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() {

    // 2d massivni ishga tushiring
    int num[3][2] = {
        {3, 4},
        {9, 5},
        {7, 1}
    };

    // funksiyani chaqiring
    // argument sifatida 2d massivni o'tkazing
    display(num);

    return 0;
}

Chiqish

kod
Displaying Values: 
num[0][0]: 3
num[0][1]: 4
num[1][0]: 9
num[1][1]: 5
num[2][0]: 7
num[2][1]: 1

Yuqoridagi dasturda biz display() nomli funksiyani aniqladik. Funksiya ikki o'lchovli massivni, int n[][2] argumentini oladi va massiv elementlarini chop etadi.

Funksiyani chaqirayotganda biz faqat display(num) funksiya argumenti sifatida ikki o'lchovli massiv nomini beramiz.

[!NOTE] Massivdagi qatorlar sonini ko'rsatish majburiy emas. Biroq, ustunlar soni har doim ko'rsatilishi kerak. Shuning uchun biz int n[][2] dan foydalandik.

Shuningdek, biz 2 dan ortiq o'lchamli massivlarni funksiya argumenti sifatida o'tkazishimiz mumkin.

C++ Funksiyadan massivni qaytarish

Funksiyadan massivni ham qaytarishimiz mumkin. Biroq, haqiqiy massiv qaytarilmaydi. Buning o'rniga pointers yordamida massivning birinchi elementining manzili qaytariladi.

Funksiyadan massivlarni qaytarish haqida biz keyingi darslarda bilib olamiz.