Передача массивов в качестве аргументов функций в Objective-C
Каждый язык программирования имеет структуру данных, которая используется для хранения элементов. Точно так же Objective-C также поддерживает структуру данных, известную как массив. Массив используется для хранения элементов одних и тех же типов данных в последовательной коллекции фиксированного размера. В массиве вам не разрешено хранить элементы разных типов в одном и том же массиве, что означает, что вы не можете хранить целые числа в массиве строковых типов. Этот первый элемент массива хранится по младшему адресу 0, а последний элемент хранится по старшему адресу. В Objective-C нам разрешено передавать массив в функцию. Чтобы передать массив (одномерный или многомерный), мы должны объявить в функции формальный параметр. Таким образом, чтобы объявить формальный параметр в функции, мы можем использовать один из следующих методов.
Способ 1
Чтобы передать массив функции, мы можем объявить формальный параметр как указатель.
Синтаксис:
-(void) FunctionName(int*)parameterName{
// Body of the function
}
Пример:
ObjectiveC
// Objective-C program to pass an array as a parameter in the function #import <Foundation/Foundation.h> // Creating an interface @interface GFG: NSObject // Function declaration -( int ) StudentMarks:( int *)ExameMarks arrSize: ( int ) s; @end // implemeneting the interface @implementation GFG // Creating a function which takes array and its size as a argument // Here we use pointer to pass array -( int )StudentMarks:( int *)ExameMarks arrSize: ( int ) s{ // Creating variables int result = 0; int i; // Finding the total sum of the marks for (i = 0; i < s; i++){ result += ExameMarks[i]; } return result; } @end // Driver code int main () { // Creating array of integer type int subjectmarks[6] = {45, 78, 56, 87, 56, 66}; double totalMarks; // Creating object GFG *obj = [[GFG alloc]init]; // Calling the function with array and size as a argument totalMarks = [obj StudentMarks:subjectmarks arrSize: 6]; // Displaying the result NSLog ( @"Total Marks: %f" , totalMarks); return 0; } |
Выход:
Total Marks: 388.000000
Объяснение: В приведенном выше коде мы находим общую сумму заданных оценок. Итак, чтобы сделать это, сначала мы объявляем функцию с именем StudentMarks в интерфейсе GFG. Эта функция принимает в качестве аргумента массив, здесь параметр передается как указатель. Затем мы реализуем функцию, и эта функция возвращает общую сумму, складывая все оценки заданных предметов (Сумма = 45 + 78 + 56 + 87 + 56 + 66). Теперь в основной функции мы вызываем функцию StudentMarks, передавая ей массив, названный в качестве предметных оценок, и отображаем окончательный результат.
Способ 2
Чтобы передать массив в функцию, мы можем объявить формальный параметр как массив с размером массива.
Синтаксис:
-(void) FunctionName(int[arraySize])parameterName{
// Body of the function
}
Пример:
ObjectiveC
// Objective-C program to pass an array as a parameter in the function #import <Foundation/Foundation.h> // Creating an interface @interface GFG: NSObject // Function declaration -( int ) StudentMarks:( int [6])ExameMarks; @end // implemeneting the interface @implementation GFG // Creating a function which takes array as a argument -( int )StudentMarks:( int [5])ExameMarks{ // Creating variables int result = 0; int i; // Finding the total sum of the marks for (i = 0; i < 6; i++){ result += ExameMarks[i]; } return result; } @end // Driver code int main () { // Creating array of integer type int subjectmarks[6] = {45, 78, 56, 87, 56, 66}; double totalMarks; // Creating object GFG *obj = [[GFG alloc]init]; // Calling the function with array as a argument totalMarks = [obj StudentMarks:subjectmarks]; // Displaying the result NSLog ( @"Total Marks: %f" , totalMarks); return 0; } |
Выход:
Total Marks: 388.000000
Объяснение: В приведенном выше примере мы собираемся найти общую сумму заданных оценок. Итак, чтобы сделать это, сначала мы объявляем функцию с именем StudentMarks в интерфейсе GFG. Эта функция принимает массив в качестве аргумента. Затем мы реализуем функцию, и эта функция возвращает общую сумму, складывая все оценки заданных предметов (Сумма = 45 + 78 + 56 + 87 + 56 + 66). Теперь в основной функции мы вызываем функцию StudentMarks, передавая ей массив, названный в качестве предметных оценок, и отображаем окончательный результат.
Способ 3
Чтобы передать массив в функцию, мы можем объявить формальный параметр как массив без размера.
Синтаксис:
-(void) FunctionName(int[])parameterName{
// Body of the function
}
Пример:
Выход:
Total Marks: 388.000000
Объяснение: В приведенном выше коде мы собираемся найти общую сумму заданных оценок. Итак, чтобы сделать это, сначала мы объявляем функцию с именем StudentMarks в интерфейсе GFG. Эта функция принимает в качестве аргумента массив без размера. Затем мы реализуем функцию, и эта функция возвращает общую сумму, складывая все оценки заданных предметов (Сумма = 45 + 78 + 56 + 87 + 56 + 66). Теперь в основной функции мы вызываем функцию StudentMarks, передавая в нее массив с именем предметных оценок вместе с другим аргументом, который называется arrSize. И отобразите окончательный результат, который равен 388.