diff -r 481514f85b3a -r 7b718fcf981c c++/ukazatele/ukazatele.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/ukazatele/ukazatele.cpp Sun Sep 20 23:08:30 2009 +0200 @@ -0,0 +1,45 @@ +#include +#include +#include +#include + +using namespace std; + +int main () { + cout << obarvi("*** Ukazatele ***", BARVA_ZELENA) << endl << endl; + upravPromennou(); +} + +void upravPromennou() { + int x; + + x= 100; + upravSpatne(x); + cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl; + + x = 100; + upravDobre(&x); + cout << obarvi("dobrý výsledek: ", BARVA_ZELENA) << x << endl; + + + /** Nefunguje → error: invalid conversion from ‘int’ to ‘int*’ */ + //x = 100; + //upravDobre(x); + //cout << obarvi("dobrý výsledek: ", BARVA_ZELENA) << x << endl; + + /** Nefunguje → error: invalid conversion from ‘int*’ to ‘int’ */ + //x= 100; + //upravSpatne(&x); + //cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl; +} + +/** Upravujeme pouze kopii hodnoty n – úprava platí jen v rámci této funkce */ +void upravSpatne(int n) { + n = 123; +} + +/** Upravíme hodnotu v paměti, do které ukazuje *n – úprava platí globálně */ +void upravDobre(int *n) { + *n = 123; +} +