我用C写了一个交换字符串的程序,但是结果没有变化是怎么回事

写了一个用C交换字符串的算法,输出还是abcdef,总觉得是指针出了问题


#include <stdio.h>
#include <stdlib.h>

void jiaoh( char strr[]);

int main()
{
        char strr[6]="abcdef";
        jiaoh(strr);
        for (int z=0; z<6; z++)
        {
                printf("%c\n",strr[z]);
        }
        system("pause");
}

void jiaoh(char strr[])
{
        char a=strr[0];
        char s=strr[5];
        char *p1=&a;
        char *p2=&s;
        while (p1>p2)
        {
                char qa=*p1;
                *p1=*p2;
                *p2=qa;
                p1++;
                p2--;
        }
}

#include <stdio.h>
#include <stdlib.h>
 
void jiaoh( char strr[]);
 
int main()
{
        char strr[]="abcdef";   
        jiaoh(strr);
        for (int z=0; z<6; z++)
        {
                printf("%c",strr[z]);
        }
        system("pause");
}

void jiaoh(char strr[])
{
        char qa;
        char *p1=&str[0];
        char *p2=&str[5];
        while (p1<p2)
        {
                qa=*p1;
                *p1=*p2;
                *p2=qa;
                p1++;
                p2--;
        }
}