Interaktívna osnova pre IB001/10 a IB001/11
Týden 8
Prebrali sme:
- pointre, pointerová aritmetika
Príklady
- pointer na int, adresy premennych, hodnoty premennych
int x = 5;
int y = 6;
int* p_x;
int* p_y;
p_x = &x;
p_y = &y;
printf("x je ulozene na %p a ma hodnotu %d\n", &x, x);
printf("y je ulozene na %p a ma hodnotu %d\n", &y, y);
printf("p_x je ulozene na %p, ukazuje na na adresu %p s hodnotou %d\n", &p_x, p_x, *p_x);
printf("p_y je ulozene na %p, ukazuje na adresu %p s hodnotou %d\n", &p_y, p_y, *p_y);
return 0;
- pointer na pole
int pole[6] = {2,4,6,8,10,12};
int* p_pole = pole;
printf("cez indexy a []\n");
for (int i=0; i<6; i++)
printf("na adrese %p je hodnota %d\n", &(p_pole[i]), p_pole[i]);
printf("cez pointerovu aritmetiku");
for (int i=0; i<6; i++)
printf("na adrese %p je hodnota %d\n", p_pole+i, *(p_pole+i));
-
sizeof
printf("int zabera %lu\n", sizeof(int));
printf("long zabera %lu\n", sizeof(long));
printf("double zabera %lu\n", sizeof(double));
printf("char zabera %lu\n", sizeof(char));
printf("pole zabera %lu\n", sizeof(pole));
printf("p_pole zabera %lu\n", sizeof(p_pole));
adresy | hodnoty |
---|---|
&x | x |
&p_x | p_x |
p_x | *p_x |
&(pole[0]) | pole[0] |
&(p_pole[2]) | p_pole[2] |
p_pole+2 | *(p_pole+2) |