fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int alt(char *p)
  4. { /* gibt 1. Zeichen eines Strings aus und inkrementiert */
  5. putchar(*p);
  6. p++; /* diese Änderung am Zeiger schlägt wegen call by value NICHT bis zum aufrufenden Kontext durch */
  7. /* deswegen übergibt man einen Zeiger auf das betreffende Element und wenn das schon selbst ein Zeiger ist, dann wird es eben ein "Doppel"-Zeiger */
  8. return 1;
  9. }
  10. int neu(char **p)
  11. { /* gibt 1. Zeichen eines Stringzeigers aus und inkrementiert */
  12. putchar(*(*p)); /* p durch (*p) ersetzen */
  13. (*p)++;
  14. return 1;
  15. }
  16. void f(char *s)
  17. {
  18. alt(s);
  19. alt(s);
  20. alt(s);
  21. puts("\n========");
  22. neu(&s); /* "Doppel"-Zeiger */
  23. neu(&s); /* "Doppel"-Zeiger */
  24. neu(&s); /* "Doppel"-Zeiger */
  25. }
  26. int main()
  27. {
  28. f("Hallo");
  29. return 0;
  30. }
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
HHH
========
Hal