// console_pointers.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include using namespace std; /* fuknce vrati hodnotu promenne navysenou o 1 a zaroven zvetsi hodnotu promenne o 100. Tato akce se diky volani funkce referenci projevi v promenne i po opusteni funkce */ int incr(int & a_x) { int l_hlp = a_x +1; a_x += 100; return l_hlp; }; /* fuknce vrati hodnotu promenne navysenou o 1 a zaroven zvetsi hodnotu promenne o 100. Tato akce se diky volani funkce odkazem projevi v promenne i po opusteni funkce */ int incr(int * a_x) { *a_x += 100; // pracujeme s adresou mista v pameti, kde je ulozena hodnota promenne return *a_x - 99; }; /* vsimnete si, ze obe predesle funkce se jmenuji stejne a vraci stejny datovy typ, lisi se pouze v datovem typu parametru - pretezovani funkci */ int Soucet (int a, int b) { return (a+b); }; int Rozdil (int a, int b) { return (a-b); }; int _tmain(int argc, _TCHAR* argv[]) { // ukazatel na promennou int* pNumber; pNumber = NULL; //vytvori ukazatel - defaultni hodnota je NULL cout <<"pNumber je null "<< pNumber << endl; int number = 100; int & ref_number = number; pNumber = &number; //Priradi mu adresu promenne number cout << "Promenna ref_number ma hodnotu " << ref_number << " a jeji adresa je " << &ref_number << endl; cout <<"Promenna number ma hodnotu " << number << " a jeji adresa je " << &number <>fce; } while (fce!= 1 && fce!= 2); /* // misto ternarniho operatoru muzeme pouzit klasicke rozhodovani, ternarni operator je vsak v tomto pripade velmi elegantni if (fce == 1) Pfce = &Soucet; else Pfce = &Rozdil; */ Pfce = (fce==1)? &Soucet: &Rozdil; cout << "adresa fce: " << Pfce << endl; cout << "adresa scitani: " << &Soucet << endl; cout << "adresa odcitani: " << &Rozdil << endl; cout << endl <<"Zadejte dve cisla: "; cin>> i >> j; cout<< endl << "vysledek je: "<< Pfce(i,j) << endl; int * pInt = new int; *pInt = 100; cout << "pInt " << pInt << " *pInt " << *pInt << endl; // dynamicke pole - deklarovane pomoci promenne int rozmer = 10; //int arr[rozmer]; int *pArrInt = new int[rozmer]; return 0; }