Consider the following C program:
#include
void fun1 (char *s1, char *s2) {
char *tmp ;
tmp = s1 ;
s1 = s2 ;
s2 = tmp ;
}
void fun2 (char **s1, char **s2) {
char *tmp ;
tmp = * s1 ;
* s1 = * s2 ;
* s2 = tmp ;
}
int main ( ) {
char *str1 = “Hi”, *str2 = “Bye” ;
fun1 (str1, str2) ; printf (“%s %s “, str1, str2) ;
fun2 (&str1, &str2) ; printf (“%s %s “, str1, str2) ;
return 0 ;
}
The output of the program above is1
Hi Bye Bye Hi
2
Hi Bye Hi Bye
3
Bye Hi Hi Bye
4
Bye Hi Bye Hi