Поясните синтаксис
Подскажите, как интерпретировать следующее объявление функции
void foor (int arr[*]);
в коде:
#include <stdio.h>
void foor (int arr[*]);
int main (void)
{
int arr [10];
foor (arr);
return 0;
}
void foor (int arr [10])
{
for (int i = 10; i < 10; ++i)
arr [i] = 0;
}
Данный код компилируется без ошибок.
как можно интерпретировать параметр int arr[*] ?
зачем нужна звездочка в квадратных скобках?
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Связанные вопросы
- https://stackoverflow.com/questions/7225358/prototype-for-variable-length-arrays
- https://stackoverflow.com/questions/42325958/what-does-asterisk-inside-square-bracket-of-array-declaration-mean-in-c
- https://stackoverflow.com/questions/17371645/why-use-an-asterisk-instead-of-an-integer-for-a-vla-array-parameter-of-a-f
Краткий пересказ. Представьте себе такой прототип функции
int sum(int n, int a[n]);
Но когда обявляются прототипы (в хедерах), то имена параметров часто упускаются. Но тут есть завязка на это имя. И как раз в этом случае и испольуется такой синтаксис
int sum(int, int a[*]);