Самое распространенное использование указателя на массив - когда вы хотите передать многомерный массив (фактически указатель на элемент многомерного массива), тогда используется указатель на массив
void multd_array_func(int (*arr)[6]);
Из другой функции этоФункция может быть вызвана как
int arr[] = {20,30,40,50,60,70};
multd_array_func(&arr);
Это не может быть сделано только с помощью указателя.В вышеупомянутой функции передача arr
или prtarr[0]
не будет работать.Это несовместимые типы указателей с int (*)[6]
.
Вы можете увидеть разницу между arr
, *ptr
и ptrarr[0]
, напечатав размер
printf("%zu %zu %zu", sizeof(arr), sizeof(ptrarr[0]), sizeof(*ptr));
Это напечатает
12 8 12