新人求指教,为何strcpy函数没有成功复制

新人求指教,为什么strcpy函数没有成功复制
这是我的程序;
#include<stdio.h>
#include <string.h>
void main()
{
char score[][4]={"zha","dfr","frg"};
void search(char (*pointer)[4]);
int i;
search(score);
for(i=0;i<3;i++)
printf("%s\n",score+i);
printf("\n");
}
void search(char (*pointer)[4])
{
char *pt;
pt=*(pointer);
strcpy(*pointer,*(pointer+1));
strcpy(*(pointer+1),pt);//不明白这一句为什么不能使pt指向的字符串复制到pointer+1中
}
输出的结果为
dfr
dfr
frg
请求帮忙
------解决方案--------------------
楼主的目的应该交换2个字符串,pt=*(pointer);你用pt来保存其实保存的只是个指针值而不是字符串,你应该搞个数组,然后把*(pointer);拷贝到数组里,最后再把这个数组里的字符串拷贝到*(pointer+1)
------解决方案--------------------
引用:
pt=*(pointer);指针变量pt中存放的应该是pointer的地址,strcpy()函数中的形参不就是地址吗,我感觉这和数组是一样的呀

错了。参考楼上几位的答案。
------解决方案--------------------
引用:
还有个问题,把函数写成这样:
void search(char (*pointer)[4])
{
char *pt;
pt=*(pointer);
*(pointer)=*(pointer+1);
*(pointer+1)=pt;
}
为什么会有这样的错误error C2106: '=' : left operand must be l-value

*pointer是一个字符数组,很明显它是不能作为一个可赋值的变量放在等号左边的。。。