Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

Отличие передачи указателя от передачи массива в функцию

Чем отличаются эти блоки кода ? В первом передаем указатель на первый элемент массива, а во втором ?
1)
void FillArray(int *arr, const int size) { for (int i = 0; i < size; i++) { arr[i] = rand() % 100; } }
2)
void FillArray(int arr[], const int size) { for (int i = 0; i < size; i++) { arr[i] = rand() % 100; } }


Ответ

В данном случае разницы нет, как я понимаю. И во втором случае тоже передаем указатель на первый элемент массива. Синтаксис разный, смысл один и тот же: в функцию в качестве аргумента передаётся указатель на тип int.
В общем случае отличия, возможно, есть. Второй вариант использует объявление параметра, как массива. В итоге оно превратится в объявление параметра-указателя (т.е. в первый вариант), но с ограничением: размер массива должен быть больше нуля.

Комментариев нет:

Отправить комментарий