/* esimerkki 2 - pointterit funktioiden argumentteina */ #include void esim1(int *ptr, int i, int j) { /* tämä funktio laskee 2. ja 3. argumentin (i:n ja j:n) summan ja sijoittaa sen osoitteeseen ptr */ *ptr = i + j; /* olisi väärin kirjoitaa 'ptr = i + j;'! */ } /* seuraava funktio järjestää argumentteina annettavien muistipaikkojen sisällöt suuruusjärjestykseen siten, että ensimmäisenä annettavaan menee pienempi luvuista ja toiseen sitten se suurempi */ void esim2(double *x1, double *x2) { double temp; if (*x1 > *x2) { temp = *x1; *x1 = *x2; *x2 = temp; } } main() { int a = 1, b = 2, c; double y1 = 2, y2 = 1; esim1(&c, a, b); printf("a = %d, b = %d, c = %d\n", a, b, c); esim2(&y1, &y2); printf("y1 = %lf, y2 = %lf\n", y1, y2); }