====== Předání parametru odkazem ====== * [[dox>predani-parametru-odkazem/transformace-textu.c|Transformace_textu]] * [[dox>predani-parametru-odkazem/celociselne-deleni.c|Celočíselné_dělení]] * [[dox>predani-parametru-odkazem/swap.c|swap]] * param[in] param[out], param[in,out] ======Předání parametru hodnotou====== Jedná se o námi doposud užíváný způsob předání parametrů funkci, který je vhodný pouze pro vstupní parametry a datové typy s relativně malou velikostí (základní datové typy, malé struktury). Formální parametr je běžná proměnná požadovaného typu (např. int moje_fce(int data);), skutečný parametr při volání funkce je pak libovolný výraz daného typu (např. vysl = moje_fce(3 * cislo);). Při realizaci volání funkce se hodnota skutečného parametru ukládá do oblasti parametrů funkce v paměti. terminologie: parametr versus argument ======Předání parametru odkazem====== Tento způsob předání parametrů lze použít jak pro vstupní tak pro výstupní parametry funkce. Běžně se používá se pro předání pole (pole nelze předat hodnotou), větších struktur a jakýchkoli dalších typů, mají-li být výstupní. Formální parametr zde je ukazatel na požadovaný typ (např. int moje_fce(int *data);), skutečný parametr při volání funkce je pak adresní výraz (např. vysl = moje_fce(&cislo);). Při realizaci volání funkce se do oblasti parametrů funkce ukládá pouze adresa, funkce používá dereferenci, data se nekopírují a lze k nim tedy přistoupit i po opuštění funkce. ---- cc,upol