Практика программирования (Бейсик, Си, Паскаль)



Массивы в качестве параметров процедур и функций - часть 5


int m, k;

m=a[0];

for(k=l; k<n; k++)

if (m < a[k]) m=a[k];

return m; }

Предлагаемый вариант очень напоминает работу с открытым массивом с той лишь разницей, что функции типа High в Си нет. Поэтому список параметров дополнен еще и количеством элементов в массиве а.

Абсолютно эквивалентным является вариант с использованием арифметики указателей:

int Max(int *a, int n) {

int m,k;

m=*a;

for(k=l; k<n; k++)

if (m < *(a+k) m=*(a+k);

return m; }

Следующий пример демонстрирует сложение квадратных матриц с приведением адресов элементов двумерного массива к их одномерным аналогам:

void sum_mat(int *a, int *b, int *c, int n) {

int j,k,m;

for(j=0; j < n; j++)

for(k=0; k < n; k++) {

m=j*n+k;

* (c+m)=* (a+m) + *(b+m) ; } }




Содержание  Назад  Вперед