Pointers swap values in void function, but won't return swapped values: C : I'm trying to swap two strings passed in as char pointers.  Debugging, I get the right answers at the end of the function, but returning the values after the function ends returns the same values as passed in.  Here is the code for main:

    #include <stdio.h>

    int main(int argc, char const *argv[]) {
      char *s1, *s2;
      s1 = "12345678";
      s2 = "87654321";
    
      printf("s1 is %s\n", s1);
      printf("s2 is %s\n", s2);
      strswap(s1, s2);
      printf("s1 is now %s\n", s1);
      printf("s2 is now %s\n", s2);
    }
and the code for the function itself 

    #include <stdio.h>

    void strswap(char *s1, char *s2){
    	char *temp;
    
    	temp = s1;
    	printf("temp: %s\n", temp);
    	s1 = s2;
    	printf("s1: %s\n", s1);
    	s2 = temp;
    	printf("s1: %s\n", s1);
    	printf("s2: %s\n", s2);
    	printf("temp: %s\n", temp);
    }
