Лабораторная работа: Модульное программирование
void main ()
{
int res, A [] = {2,1,3,2};
res = sum (A,
4);
} // вызов функции sum
Формальный аргумент имени массива может иметь вид int *A.
int sum (int *A, int Dim); // прототип
Для определения размера массива при вызове функции можно использовать выражение sizeof (A) /sizeof (int) или sizeof (A) /sizeof (A []). Например,
res = sum (A, sizeof (A) /sizeof (A []));
3.4 Передача двумерных массивов
Способ 1. При передаче двумерного массива в функцию следует учитывать, что количество элементов в строке массива является частью типа имени этого массива. Так например, для массива int A [3] [4] имя массива А имеет тип int (*) [4], т.е. А - это указатель на одномерный массив из 4 элементов типа int .
Поэтому необходимо передавать два параметра: имя массива и количество строк в массиве.
Пример.
int sum2 (int A [] [4], int M); // прототип
int sum2 (int A [] [4], int M); // заголовок
{
….
} // телофункции
void main ()
{
int res, A [] [4] = {{2,1,3,2}, {2,3,4,5}}; // двестроки, четырестолобца
res = sum2 (A,
2); // вызовфункции sum2
}
Формальный аргумент имени массива может иметь вид int (*A) [4].
intsum2 (int (*A) [4], intM); // прототип
Для определения размера массива при вызове функции можно использовать выражение sizeof (A) /sizeof (A []). Например,
res = sum2 (A, sizeof (A) /sizeof (A []));
Способ 2. Другой способ передачи двумерного массива в функцию состоит в погружении фактического двумерного массива с размерами MxN в двумерный массив заведомо больших размеров. Пи этом достаточно взять большой размер стоки, например, 100.