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]
|
|
|