Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".
1 /*
2 * Soubor: 20101215-Wed-ukazatele.c
3 * Datum: 15.12.2010 13:12
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: Demonstrace práce s ukazateli
7 */
8
9 #include <stdio.h>
10 #include <stdbool.h>
11
12 /////////////////////////////////////////////////////
13
14 int vymen(int *x,int *y)
15 {
16 int tmp = *x;
17 *x = *y;
18 *y =tmp;
19 }
20 /**
21 * Hlavní program.
22 */
23 int main(void) {
24 /* a, b jsou statické proměnné */
25 int a;
26 int b;
27 /* p je ukazatel (pointer) na integer */
28 int *p;
29
30 a = 10;
31 p = &a; /* amresand vydá adresu proměnné a,
32 v p je nyní uložena adresa a */
33 printf("adresa a:%p\n",(void *) p);
34 b = *p ; /* nepracuji s p, ale s pamětí na kterou p ukazuje */
35 printf("%d %d\n", a, b); // a==10, b==10
36
37 *p = 391; /* a==391, b==10 */
38 printf("%d %d\n", a, b);
39
40 vymen(&a,&b);
41 printf("%d %d\n", a, b);
42
43 scanf("%d %d",&a,&b);
44 scanf("%d %d",&a,&b);
45 printf("%d %d\n", a, b);
46
47 return 0;
48 }