#include <iostream>
//#include <string>
//#include <vector>
using namespace std;
//deklaracje funkcji
void mojaFunkcja();
double mojaFunkcjaLiczaca(int, int);
void mojaFunkcjaOperacjeNaZmiennej(int, int*, int&);
int main()
{
mojaFunkcja();
int a = 0;
int b = 0;
int c = 0;
double wynik = mojaFunkcjaLiczaca(10, 20);
mojaFunkcjaOperacjeNaZmiennej(a, &b, c); //b jest zmienna a nie wskaznikiem wiec przy przekazaniu musimy powiedziec gdzie w pamieci sie ona znajduje
cout << a << " " << b << " " << c << endl;
std::cout << '\n';
}
//definicje funkcji
void mojaFunkcja()
{
cout << "jestem w srodku funkcji" << endl;
}
double mojaFunkcjaLiczaca(int a, int b)
{
double wynik = a + b;
return wynik;
}
void mojaFunkcjaOperacjeNaZmiennej(int wartosc, int* wskaznik, int& referencja)
{
wartosc = 10; //dzialamy na kopi lokalnej zmiennej a wszystko co zrobimy zostanie w funkcji i nie wplynie na zienna a (20linika)
*wskaznik = 10; //wskaznik pokazuje na miejsce w pamieci, zeby podstawic jakas wartosc musimy dodac *
referencja = 10; //dzialamy na oryginale zmiennej wszystko co zrobimy w funkcji wplynie na ziemma c przekazana jako argument w 20 linice
cout << "wartosc: " << wartosc << endl;
cout << "wskaznik: " << wskaznik << " wartosc pod wskaznikiem (*)" << *wskaznik << endl;
cout << "oryginal: " << referencja << endl;
}