- PVSM.RU - https://www.pvsm.ru -
int arr[] = {p1, p2, p3, ...}; // длина массива определяется
после инициализации
Как следствие, его можно передать в функцию таким же способом:
void func(int arr[]){
//your code
}
void func(int* arr){
//your code
}
int arr[5] = {1, 2, 3, 4, 5};
Мы привыкли обращаться к элементам массива по индексам, но попробуйте скомпилировать и запустить следующие строки:
int main(){
int arr[5] = {1, 2, 3, 4, 5};
cout << arr << endl; //в данном случае мы увидим адрес начала массива
return 0; //его мы и передаем в массив
}
При использовании любого из данных вариантов, перед нами становится вопрос определения длины полученного массива. Длину можно передавать через второй параметр в функцию.
Например:
void func(int* arr, int length){
//your code
}
Но в ряде задач длина входного массива может быть неизвестной. На этот случай тоже есть решение, мы можем анализировать данные, которые поступили в функцию по указателю, например:
int len(int* arr){
int count = 0;
while(*x++ < ?) count++;
return count;
}
Крайне важно понять критерий по которому мы будем оценивать содержимое. В противном случае, можно получить не совсем то, что ожидалось.
Автор: мистер Олимпия
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/pesochnitsa/264258
Ссылки в тексте:
[1] Источник: http://habrahabr.ru/sandbox/111348/
Нажмите здесь для печати.