• Ogłoszenie:

Przekazywanie zmiennych w c++

Wszystko na temat programów: skąd pobrać, instalacja, użytkowanie, problemy, poszukiwane programy.

Przekazywanie zmiennych w c++

Postprzez Box 01 Lut 2013, 17:52

reklama
Witam,
Podczas pisania programu mam pewien problem i ni cholery nie wiem jak go rozwiązać. Przyznam szczerze, że zagadnienie przekazywania parametrów z funkcji do funkcji jest dla mnie kłopotem, nigdy go nie rozumiałem (ani w Pascalu ani w C++), a teraz na studiach programy tylko na to piszemy.

Nie chcę, byście mi pisali program
Proszę tylko mnie naprowadzić z czego mam skorzystać, by stało się to, co chcę, by się stało, a mianowicie:
1 - mam funkcje wprowadzania danych, która liczy też ile danych zostało wprowadzonych (ilość wyrazów ciągu; nie jest to zmienna sterująca pętlą)
2 - chcę, by ilość wyrazów ciągu uzyskana w pierwszej funkcji była dostępna w drugiej funkcji (np. do warunku pętli for)

Orientuję się w temacie tylko tyle, że istnieje przekazywanie przez wartość, wskaźnik i referencję, ale co do czego, to nie mam pojęcia!

Pomocy :(
:O ffs.
Box
~user
 
Posty: 54
Dołączenie: 03 Cze 2008, 18:35



Przekazywanie zmiennych w c++

Postprzez placebo 01 Lut 2013, 18:34

Trochę chyba nie ten dział, ale odpowiem na główne pytanie przykładem:

Kod: Zaznacz wszystko
#include <iostream>
using namespace std;

int f1(int i)
{
    i ++;
    return i;
}

void f2(int i)
{
    cout << i << "\n";
}

void f3(int &i)
{
    i ++;
}

int main()
{

    int a = 5;
    int wynik = f1(5);

    cout << "\'a\' sie nie zmieni: " << a << "\n";

    f2(wynik);

    f3(wynik);
    cout << "\'wynik\' sie zmieni: " << wynik << "\n";

    return 0;
}



Masz tu 3 funkcje: f1, f2 i f3.

f1:

- pobiera przez wartość liczbę int, zwiększa ją i zwraca, nie modyfikuje wartości argumentu (bo jest przekazany przez wartość właśnie)
- to co zwróci funkcja, możesz przypisać do zmiennej, którą wykorzystasz do przekazania funkcji f2

f2:

- pobiera również przez wartość zmienną i tylko ją wyświetla

f3:

- pobiera przez referencję (czyli zmodyfikuje przekazaną wartość) zmienną i zwiększa ją - w mainie, po wyjściu z funkcji widać, że wartość została zmieniona, w takiej samej sytuacji, przy użyciu funkcji f1 zmienna przekazana zmieniona nie była (bo została przekazana przez wartość, a nie przez referencję)
Awatar użytkownika
placebo
~user
 
Posty: 85
Dołączenie: 02 Lis 2007, 13:02



Przekazywanie zmiennych w c++

Postprzez Mariusz101 01 Lut 2013, 22:19

Dokładnie takie sa sposoby przrkazywania. W Twoim przpadku sprawa jest banalna. Pierwsza funkcja zwraca jakas wartosc, ktorej wartosc mozesz uzyc jako parametr przekazywany do drugiej funkcji
Mariusz101
~user
 
Posty: 18
Dołączenie: 30 Sty 2013, 15:36



Przekazywanie zmiennych w c++

Postprzez Box 01 Lut 2013, 23:23

Nie, nie... Moja funkcja nie zwraca żadnej wartości, gdyż nie będę operować na funkcji (zostanie ona wywołana tylko raz w programie), a na jednym z jej parametrów, który ona zmodyfikuje.
:O ffs.
Box
~user
 
Posty: 54
Dołączenie: 03 Cze 2008, 18:35



Przekazywanie zmiennych w c++

Postprzez Mariusz101 02 Lut 2013, 19:10

No dobrze nie zostanie wywołana raz i niech zwroci interesujaca Cie wartosc
Mariusz101
~user
 
Posty: 18
Dołączenie: 30 Sty 2013, 15:36




Powróć do Programy

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 29 gości