Рассмотрим следующие функции C/C++:Декларирование размер входного массива в C++ функции
void print_array_1(int arr[4]) {
for (int i = 0; i < 4; ++i) {
std::cout << arr[i] << std::endl;
}
}
void print_array_2(int arr[]) {
for (int i = 0; i < 4; ++i) {
std::cout << arr[i] << std::endl;
}
}
При переходе в массиве четыре элемента в каждой функции, они оба делают то же самое.
Есть ли какие-либо реальные различия? arr
- это всего лишь указатель на кусок памяти, поэтому кажется, что они должны быть эквивалентными.
Альтернативный обман: https://stackoverflow.com/questions/1328223/when-a-function-has-a-specific-size-array-parameter-why-is-it-replaced-with-ap –