массивы (си)
и если у меня массивы разные по величине, можно ли написать:
int funct( int arr[])
Цитата:
скажите пожалуйста как написать, что функция возвращает массив? (что вместо int написать перед ней?)
все массивы передаются по адрессу, а не по значению, т.е. все изменения которые функция произведет в массиве, сохраняются в оригинале, как при работе с указателями(поинтерами).
функцию объявляй как [COLOR=blue]void[/COLOR]
[COLOR=black]
Код:
void namefunction(int nameArray[], int sizeArray){ ... }
Цитата:
если у меня массивы разные по величине, можно ли написать:
int funct( int arr[])
int funct( int arr[])
так написать можно, только вместе с массивом нужно передать его размер, как я выше показала. если ты например работаешь с массивом символов с символическим концом ноль '\0', тогда размер не нужен. в принцепе такой же трюк можно сделать и с массивом int, все зависит от задачи и того кто ее решает.
а вот если у меня есть какой-то массив и я хочу, чтобы с помощью функции какие-то элементы в нем поменялись. мне нужно в функцию ввести массив, который уже есть, а потом снова получить массив
передавай в функцию массив, и ВСЕ изменения которые ты в функции произведешь в массиве сохраняются в оригинале. когда речь идет о простых переменных(int a, char ch, float b etc.) то в функцию передается не адресс переменной, а ее значение(т.е. копия), но когда передаются массивы, то передается адресс памяти(RAM), где хранится массив, т.е. копий не делают т.к. это дорого стоит(и по времени, и по расходу оперативной памяти), поэтому возращать ничего не надо.