/* osoittimet.c */ /* SJ 010498 */ #include int main() { int a; /* kokonaisluku */ int *b; /* osoitin kokonaislukuun */ float x; /* liukuluku */ float *y; /* osoitin liukulukuun */ float **z; /* osoitin osoittimeen, joka on osoitin liukulukuun */ a = 5; /* Tavallinen sijoitus */ b = &a; /* b = a:n osoite */ /* b:n osoittamassa paikassa on luku 5 */ printf("*b == %d\n", *b); *b = 6; /* b:n osoittamaan paikkaan sijoitetaan luku 6 */ printf("a == %d\n", a); /* a:n arvo on 6 */ x = 1.234; y = &x; /* y = x:n osoite */ z = &y; /* z = y:n osoite */ printf("*y == %f\n", *y); printf("&x == %p\n", &x); printf("y == %p\n", y); printf("*y == %f\n", *y); printf("&y == %p\n", &y); printf("z == %p\n", z); printf("*z == %p\n", *z); printf("**z == %f\n", **z); y = NULL; printf("y == %p\n", y); return 0; } /* Tulostus > gcc -ansi -Wall osoittimet.c > a.out *b == 5 a == 6 *y == 1.234000 &x == 0xbf842504 y == 0xbf842504 *y == 1.234000 &y == 0xbf842500 z == 0xbf842500 *z == 0xbf842504 **z == 1.234000 y == (nil) tai y == 0 */