Jak wykorzystać parametr funkcji w środku innej funkcji?

0

Mam taki kod dla uproszczenia:

void Func_1()
{
    while (i != K)
        // instrukcje
}

int Func_2(int K)
{
    // instrukcje
    Func_1();
}

Func_2 calluję w mainie i jako parametr K przekazuję liczbę poprzez wartość. Func_1 calluję wewnątrz Func_2.

Pytanie: co muszę zrobić, aby skorzystać z K wewnątrz Func_1?

2

Przekazać ją jako parametr.

0

No tak, nie wiem jak tego nie ogarnąłem. Dzięki.

0

A co gdyby K było zainicjalizowane w środku ciała jakiejś funkcji, i chciałbym wykorzystać je w środku innej funkcji? Np. tak:

void f1()
{
    int K = 10; // tutaj jest to moje K
}

void f2()
{
    K = ... // tutaj chciałbym wykorzystać tamto K
}

Czy da się to zrobić np. wskaźnikami?

1
  1. Przekaż jako parametr / argument metody;
  2. Zrób z tej zmiennej pole klasy / struktury;
  3. Zwróć zmienną z jednej funkcji i wykorzystaj w drugiej.
1
Hodor napisał(a):

A co gdyby K było zainicjalizowane w środku ciała jakiejś funkcji, i chciałbym wykorzystać je w środku innej funkcji? Np. tak:

void f1()
{
    int K = 10; // tutaj jest to moje K
}

void f2()
{
    K = ... // tutaj chciałbym wykorzystać tamto K
}

Czy da się to zrobić np. wskaźnikami?

w c nie ma zagnieżdżonych funkcji, jak np. w paskalu, zatem takie coś jest niemożliwe.

Ale można to obejść, oczywiście, np. tworząc klasę ze zmienną K, i z tymi dwoma funkcjami,
albo definiując to K zupełnie na zewnątrz - jako zmienną globalną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1