Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Передача массива в функцию в программировании на C++

Передача массива в функцию в программировании на C++

В этом руководстве мы научимся передавать одномерный и многомерный массив в качестве параметра функции в C++ с помощью примеров.

В C++ мы можем передавать массивы в качестве аргумента функции. А также мы можем возвращать массивы из функции.

Прежде чем вы узнаете о передаче массивов в качестве аргумента функции, убедитесь, что вы знаете о массивах C++ и функциях C++.

<час>

Синтаксис для передачи массивов в качестве параметров функции

Синтаксис для передачи массива в функцию:

returnType functionName(dataType arrayName[arraySize]) {
    // code
}

Давайте посмотрим на пример,

int total(int marks[5]) {
    // code
}

Здесь мы передали int массив типов с именем marks к функции total() . Размер массива 5 .

<час>

Пример 1. Передача одномерного массива в функцию

// C++ Program to display marks of 5 students

#include <iostream>
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;
}

Вывод

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

Здесь

  1. Когда мы вызываем функцию, передавая массив в качестве аргумента, используется только имя массива.
    display(marks);
    Здесь аргумент отмечает представляют адрес памяти первого элемента массива marks[5] .
  2. Однако обратите внимание на параметр display() функция.
    void display(int m[5])
    Здесь мы используем полное объявление массива в параметре функции, включая квадратные скобки [] .
  3. Параметр функции int m[5] преобразуется в int* m; . Это указывает на тот же адрес, на который указывает массив marks . Это означает, что когда мы манипулируем m[5] в теле функции мы фактически манипулируем исходным массивом marks .

    C++ обрабатывает передачу массива в функцию таким образом, чтобы сэкономить память и время.
<час>

Передача многомерного массива в функцию

Мы также можем передавать многомерные массивы в качестве аргумента функции. Например,

Пример 2. Передача многомерного массива в функцию

// C++ Program to display the elements of two
// dimensional array by passing it to a function

#include <iostream>
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;
}

Вывод

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

В приведенной выше программе мы определили функцию с именем display(). . Функция принимает двумерный массив int n[][2] в качестве аргумента и выводит элементы массива.

При вызове функции мы передаем только имя двумерного массива в качестве аргумента функции display(num) .

Примечание :не обязательно указывать количество строк в массиве. Однако всегда следует указывать количество столбцов. Вот почему мы использовали int n[][2] .

Мы также можем передавать массивы с более чем двумя измерениями в качестве аргумента функции.

<час>

С++ возвращает массив из функции

Мы также можем вернуть массив из функции. Однако фактический массив не возвращается. Вместо этого с помощью указателей возвращается адрес первого элемента массива.

Мы узнаем о возврате массивов из функции в следующих руководствах.


Язык C

  1. Зубчатый массив С#
  2. Операторы С++
  3. Дружественные функции C++ и дружественные классы
  4. Операторы программирования на C
  5. Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
  6. C++ динамическое выделение массивов с примером
  7. Перегрузка оператора C++ с примерами
  8. Функции C++ с примерами программ
  9. C Учебник
  10. Перегрузка C++ (оператор и функция)