0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
|
|
1 | |
Как вернуть сразу 2 значения из функции?03.02.2009, 17:23. Показов 123252. Ответов 30
Метки нет (Все метки)
0
|
03.02.2009, 17:23 | |
Ответы с готовыми решениями:
30
Как вернуть сразу 2 значения массива в функции? Как вернуть 2 значения из функции? Как вернуть из функции два значения? Как вернуть два значения из функции? |
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
|
|
03.02.2009, 17:35 [ТС] | 3 |
"А в идеале один параметр можно вернуть через принятые параметры."
а это как?
0
|
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
|
|
03.02.2009, 17:42 [ТС] | 5 |
угу, спасибо!
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
03.02.2009, 18:31 | 6 |
А язык какой?
На C++ - запросто Возвращаешь std :: pair<Парам1, Парам2>.
0
|
Maniac
|
||||||
04.02.2009, 03:26 | 8 | |||||
Вот пример
0
|
0 / 0 / 0
Регистрация: 04.02.2009
Сообщений: 5
|
|
04.02.2009, 17:17 | 9 |
0
|
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
|
|
04.02.2009, 17:57 [ТС] | 10 |
Спасибо всем огромное! А язык Си
Добавлено через 33 минуты 32 секунды а можно попросить привести пример со структурами? Саму структуру, которую потом функция вернуть должна, в функции задавать надо? Или можно вне функции?
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
04.02.2009, 18:05 | 11 | |||||
А можно попросить попробовать самому пример сделать? Разве, это так сложно?
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
04.02.2009, 23:47 | 12 |
Код
#include <stdio.h> struct x { int a, b; }; /* возвращает несколько переменных из функции в структуре */ main() { struct x f(int, int); printf("%d %d\n", f(5, 1).a, f(1, 8).b); return 0; } struct x f(int a, int b) { struct x tmp = { a*2, b*2 }; return tmp; } Код
#include <stdio.h> struct x { int a, b; }; main() { struct x *f(int, int); printf("%d %d\n", f(5, 1)->a, f(1, 8)->b); return 0; } struct x *f(int a, int b) { static struct x tmp; tmp.a = a*2; tmp.b = b*2; return &tmp; } короче если у тебя структуры содержат немало данных, нужно юзать указатели, если мало, то можно прямо передавать (передавать можно в обе стороны)
0
|
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
|
||||||
06.02.2009, 16:27 [ТС] | 13 | |||||
А можно еще один вопрос: Как передать элемент структуры в функцию?
Пробую тпо разному, и так, и так - не получается...
извините, не тот вариант скинула.
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
06.02.2009, 17:25 | 14 |
Относись ко всему проще. Элементы структуры - точно такие же переменные, за исключением того,что доступ к ним происходит не по имени,а по struc_obj.name Конечно,это не совсем так и можно долго это мусолить,но нужно понимать,что все,что можно делать с обычной переменной - можно делать с полем структуры того же типа. Пример :
Код
typedef struct _point { float x; float y; } Point; void f(float x); int main () { Point A; f(A.x); f(A.y); };
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
06.02.2009, 22:33 | 15 | |||||
Код
unsigned int Generation_p_q(unsigned int uroven, struct perem* step) фактические аргументы - это те, с которыми функция будет вызываться (то есть они могут быть и правильными и неправильными) тебе может потребоваться такой тип для поля struct perem* step в случае
0
|
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
|
|
06.02.2009, 23:03 | 16 |
Используйте std :: pair.
0
|
из племени тумба-юбма
|
||||||
14.10.2021, 23:34 | 17 | |||||
Есть иной вариант, не совсем то что требуется, но тем не менее. Вернуть вновь созданные значения, через вызов другой функции, с обработкой в ней новых значений и возвратом результата. Как то так:
Кликните здесь для просмотра всего текста
То есть, пока дочерняя функция f1, не вернула значение в материнскую функцию main, все значения переменных, созданных в f1 не удаляются, а остаются памяти. Значения можно передать и обработать в новой дочерней функции f2 и вернуть результат обратно в f1. И только потом, этот результат вернется в основную функцию main. После этого все переменные дочерних функций будут удалены из памяти.
0
|
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
14.10.2021, 23:46 | 18 |
0
|
3220 / 1441 / 464
Регистрация: 01.06.2021
Сообщений: 4,840
|
||||||
14.10.2021, 23:55 | 20 | |||||
Структуры у меня медленные, медленнее даже классов.
А вот указатели работают очень быстро.
0
|
14.10.2021, 23:55 | |
14.10.2021, 23:55 | |
Помогаю со студенческими работами здесь
20
Как вернуть из функции два значения Как можно вернуть из функции более 1 значения? Как вернуть больше одного значения из функции? Как вернуть сразу два параметра? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |