/** Call by address */
#include <stdio.h>
void swap(char **s, char **p) {
char *t = *p;
*p = *s;
*s = t;
}
int main() {
char *one = "First", *two = "Second";
swap(&one, &two);
printf("%s %s\n", one, two);
}
/** Call by reference */
/*#include <stdio.h>
void swap(char *&s, char *&p) {
char *t = s;
s = p;
p = t;
}
int main() {
char *one = "First", *two = "Second";
swap(one, two);
printf("%s %s\n", one, two);
}*/
LyoqIENhbGwgYnkgYWRkcmVzcyAqLwojaW5jbHVkZSA8c3RkaW8uaD4Kdm9pZCBzd2FwKGNoYXIgKipzLCBjaGFyICoqcCkgewoJY2hhciAqdCA9ICpwOwoJKnAgPSAqczsKCSpzID0gdDsKfQppbnQgbWFpbigpIHsKCWNoYXIgKm9uZSA9ICJGaXJzdCIsICp0d28gPSAiU2Vjb25kIjsKCXN3YXAoJm9uZSwgJnR3byk7CglwcmludGYoIiVzICVzXG4iLCBvbmUsIHR3byk7Cn0KCi8qKiBDYWxsIGJ5IHJlZmVyZW5jZSAqLwovKiNpbmNsdWRlIDxzdGRpby5oPgp2b2lkIHN3YXAoY2hhciAqJnMsIGNoYXIgKiZwKSB7CgljaGFyICp0ID0gczsKCXMgPSBwOwoJcCA9IHQ7Cn0KaW50IG1haW4oKSB7CgljaGFyICpvbmUgPSAiRmlyc3QiLCAqdHdvID0gIlNlY29uZCI7Cglzd2FwKG9uZSwgdHdvKTsKCXByaW50ZigiJXMgJXNcbiIsIG9uZSwgdHdvKTsKfSov