Определение этой функции
void get_elemnts(int *array, int max_index){
for(int i = 0; i < max_index; i++){
printf("enter element 0%d: ", i);
scanf("%d", array + i);
}
}
эквивалентно
void get_elemnts(int *array, int max_index){
for(int i = 0; i < max_index; i++){
printf("enter element 0%d: ", i);
scanf("%d", &array[i] );
}
}
Это выражение array + i
дает указатель на i-й элемент массива.
Формат %d
, используемый в функции scanf
, ожидает указатель на объект типа int
, а это выражение array + i
возвращает указатель с помощью арифметики указателя c.
Выражение array[i]
эквивалентно выражению *( array + i )
.
Таким образом, выражение &array[i]
совпадает с &*( array + i )
, где применяемые операторы &*
можно опустить, и вы получите просто ( array + i )
.