Не могу понять как работает указатель в коде на C++
Вот код программы, которая суммирует элементы строк матрицы и находит среди них максимальную сумму. Не могу понять, как работает указатель в данном случае.
Сначала мы создаем указатель int *P. Затем присваиваем ему адрес элемента матрицы a[0][0]. Затем, когда суммируем элементы, мы разыменовываем указатель s += *P. А вот что значит в конце цикла P++?
#include<iostream>
int main() {
int a[3][5], i, j, s, max, *P;
printf("input A[3][5]");
printf("\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
scanf("%d", &a[i][j]);
}
}
P = &a[0][0];
printf("Array A:\n");
for (i = 0; i < 3; i++) {
s = 0;
for (j = 0; j < 5; j++) {
printf("%5d", a[i][j]);
s += *P;
P++;
}
printf("\n");
if (i == 0) max = s;
else if (max < s) max = s;
}
printf("str max = %d", max);
}
Ответы (1 шт):
Автор решения: mAlware_w0lf
→ Ссылка
Если мне не изменяет память, то в данном случае происходит переход адреса на 4 байта (размер типа данных, который присвоен как массиву, так и указателю), на который указывает, собственно, указатель