1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/c++/ukazatele/ukazatele.cpp Sun Sep 20 23:08:30 2009 +0200
1.3 @@ -0,0 +1,45 @@
1.4 +#include <iostream>
1.5 +#include <string>
1.6 +#include <ukazatele.h>
1.7 +#include <barvicky.h>
1.8 +
1.9 +using namespace std;
1.10 +
1.11 +int main () {
1.12 + cout << obarvi("*** Ukazatele ***", BARVA_ZELENA) << endl << endl;
1.13 + upravPromennou();
1.14 +}
1.15 +
1.16 +void upravPromennou() {
1.17 + int x;
1.18 +
1.19 + x= 100;
1.20 + upravSpatne(x);
1.21 + cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl;
1.22 +
1.23 + x = 100;
1.24 + upravDobre(&x);
1.25 + cout << obarvi("dobrý výsledek: ", BARVA_ZELENA) << x << endl;
1.26 +
1.27 +
1.28 + /** Nefunguje → error: invalid conversion from ‘int’ to ‘int*’ */
1.29 + //x = 100;
1.30 + //upravDobre(x);
1.31 + //cout << obarvi("dobrý výsledek: ", BARVA_ZELENA) << x << endl;
1.32 +
1.33 + /** Nefunguje → error: invalid conversion from ‘int*’ to ‘int’ */
1.34 + //x= 100;
1.35 + //upravSpatne(&x);
1.36 + //cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl;
1.37 +}
1.38 +
1.39 +/** Upravujeme pouze kopii hodnoty n – úprava platí jen v rámci této funkce */
1.40 +void upravSpatne(int n) {
1.41 + n = 123;
1.42 +}
1.43 +
1.44 +/** Upravíme hodnotu v paměti, do které ukazuje *n – úprava platí globálně */
1.45 +void upravDobre(int *n) {
1.46 + *n = 123;
1.47 +}
1.48 +