Temat tego wykłady ilustruje poniższy przykład
#include<cstdlib> #include<iostream> using namespace std; struct Punkt // Deklaracja struktury { int x, y; // Pola struktury }; // UWAGA! Nigdy nie zapominać o średniku void PrzesunWskP(Punkt * a, // ...przez wskaźnik (adres) Punkt d) // ...przez wartość { a->x += d.x; // a->x wyłuskanie wskaźnika (dereferencja). Alternatywnie (*a).x a->y += d.y; // a->y wyłuskanie wskaźnika (dereferencja). Alternatywnie (*a).y } void PrzesunRefP(Punkt & a, // ...przez referencje (adres) Punkt d) // ...przez wartość { a.x += d.x; // referencji używa się tak jak zwykłej zmiennej a.y += d.y; // referencji używa się tak jak zwykłej zmiennej } int main(int argc, char *argv[]) { Punkt p, d; //definicja zmiennych strukturalnych typu Punkt d.x = 1; d.y = 2; cout << "\nPrzekazywanie przez wskaznik" << endl; xp.x=p.y=0; for (int i=0; i<3; ++i) { PrzesunWskP(&p, // pobranie adresu zmiennej p d); cout << "(" << p.x <<", " << p.y <<")" << endl; } cout << "\nPrzekazywanie przez referencje" << endl; p.x=p.y=0; for (int i=0; i<3; ++i) { PrzesunRefP(p, d); cout << "(" << p.x <<", " << p.y <<")" << endl; } system("pause"); return 0; };
Więcej można znaleźć na stronach: