szymonpw napisał(a)
Witam
Na wstepnie wspomne że jestem początkujący więc proszę o wyrozumiałość.
Na przykładowe dwie funkcje.
pubic int funkcja1 (int id)
{
return id;
}
public void funkcja ( int a, int b)
{
int zmiena = id //jak to zmienić
//coś tam robi
}
Funcja funkcja1 zwaraca wartość int. Mój problem polega na tym jak zrobić żeby parametr id z funkcja1 był odczytywany w funkcja2.
Nie wiem za bardzo jak to ugryś i w google ciężko cokolwiek mi znaleć na ten temat.
Hę???
int fun1(int id) {
// tutaj robisz coś z id np.
return id;
};
void fun2(int a, int b, int id) {
int zmienna = id;
// coś tam robisz
};
// ...
int main(void) {
fun2(1, 2, fun1(3));
};
Jeśli natomiast chcesz zmodyfikować w fun2() wartość, którą zwróciła fun1(), to musisz ją sobie zapisać w jakieś zmiennej i przekazać poprzez wskaźnik:
// ...
void fun2(int a, int b, int *id) {
int zmienna = *id; // zmieniasz tylko kopię lokalną, lub:
int *zmienna = id; // zmieniasz id z main(), to jest _wskaźnik_!
// rozsądniej jednak będzie się odwoływać bezpośrednio:
fprintf(stdout, "%d\n", *id);
*id = 8;
};
int main(void) {
int id;
id = fun1(3);
fun2(1, 2, &id);
};
lub zapisać ją sobie w zmiennej globalnej (odradzam, chyba że naprawdę bardzo musisz lub bardzo bardzo bardzo chcesz).
Aha, przy czymś takim:
fun2(1, 2, fun1(3));
obsługa błędów z fun1() jest upierdliwa, a często niemożliwa. Jeśli chcesz tego uniknąć, musisz wywoływać funkcje oddzielnie i przerzucać się zmienną tymczasową.
Czy o to Ci chodziło?