Explanation : fun1(char *s1, char *s2)
function scope is local, so the value changed So the affect actual parameters. SO the values will be ‘Hi Bye’.
fun2(char **s1, char **s2)
In this function value is pointer to pointer, so it changes pointer of the actual value. So values will be ‘Bye Hi’