|
Porovnajte uvedené funkcie. Čo bude výsledkom volania jednotlivých funkcií pre zodpovedajúce skutočné parametre?
| a) | b) |
void vymena(int a, int b)
{
int pom = a;
a = b;
b = pom;
}
| void vymena(int *p_a, int *p_b)
{
int pom = *p_a;
*p_a = *p_b;
*p_b = pom;
}
|
| c) |
void vymena(int **pp_a, **pp_a)
{
int *pom = *pp_a;
*pp_b = *pp_a;
*pp_a = *pp_b;
}
|
|
[Riešenie]
|
Vytvorte
program, ktorý pomocou funkcie číta riadok z klávesnice a spočíta
koľko v ňom bolo medzier a koľko malých písmen. Okrem toho
funkcia vráti hodnotu 0, ak bol riadok prázdny, inak vráti
hodnotu 1. O každom neprázdnom riadku vypíšte požadované
informácie na obrazovku. Program skončí, ak bol posledný riadok prázdny.
|
[Riešenie]
|
|
Napíšte niekoľko funkcií typu void: ahoj, cau, nazdar
a pod., pričom každá z nich vypíše príslušný pozdrav na obrazovku.
V programe deklarujte pole pointerov na funkcie vracajúce void
napr. takto:
void (*pozdravy[2])();
Alebo najskôr definujte nový typ - pointer na funkciu vracajúcu void:
typedef void (*TPf)();
TPf pozdravy[2];.
Inicializujte
toto trojprvkové pole adresami spomínaných funkcií. Program pozdraví
používateľa podľa toho, aký zvyšok po delení tromi dá číslo zadané na
vstupe. Nepoužívajte prepínač (switch), využite pole pointerov na
funkcie!
|
[Riešenie]
|
 |
|