c++/ukazatele/ukazatele.cpp
author František Kučera <franta-hg@frantovo.cz>
Sun, 20 Sep 2009 23:08:30 +0200
changeset 12 7b718fcf981c
child 15 b166c6f49719
permissions -rw-r--r--
Projekt „ukazatele“: pro pochopení ukazatelů (pointerů) v C++
     1 #include <iostream>
     2 #include <string>
     3 #include <ukazatele.h>
     4 #include <barvicky.h>
     5 
     6 using namespace std;
     7 
     8 int main () {
     9 	cout << obarvi("*** Ukazatele ***", BARVA_ZELENA) << endl << endl;
    10 	upravPromennou();
    11 }
    12 
    13 void upravPromennou() {
    14 	int x;
    15 	
    16 	x= 100;
    17 	upravSpatne(x);
    18 	cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl;
    19 	
    20 	x = 100;
    21 	upravDobre(&x);
    22 	cout << obarvi("dobrý výsledek:  ", BARVA_ZELENA) << x << endl;
    23 	
    24 	
    25 	/** Nefunguje → error: invalid conversion from ‘int’ to ‘int*’ */
    26 	//x = 100;
    27 	//upravDobre(x);
    28 	//cout << obarvi("dobrý výsledek:  ", BARVA_ZELENA) << x << endl;
    29 	
    30 	/** Nefunguje → error: invalid conversion from ‘int*’ to ‘int’ */
    31 	//x= 100;
    32 	//upravSpatne(&x);
    33 	//cout << obarvi("špatný výsledek: ", BARVA_ZELENA) << x << endl;
    34 }
    35 
    36 /** Upravujeme pouze kopii hodnoty n – úprava platí jen v rámci této funkce */
    37 void upravSpatne(int n) {
    38   n = 123;
    39 }
    40 
    41 /** Upravíme hodnotu v paměti, do které ukazuje *n – úprava platí globálně */
    42 void upravDobre(int *n) {
    43   *n = 123;
    44 }
    45