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’