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