Предлагаемый вариант очень напоминает работу
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) ; } }
Содержание Назад Вперед