求帮我看看为什么这个会有语法错误

#include<stdio.h>
int main()
{
char s[7] = {"abcef"};
char d;
int n;
char *p = s;
printf("输入你想插入的位置");
scanf("%d",&n);
//p=p+n;
for(int i=6;i<n;i++)
{
*p[i-1]=*p[i];
}
printf("输入你想插入的字符\n");
scanf("%c",&d);
p[n]=d;
printf("%s",s);
}
这是代码。下面的是编译器报的错:unction ‘main’:
shell.c:13:13: error: invalid type argument of unary ‘
’ (have ‘int’)
*p[i-1]=*p[i];

shell.c:13:21: error: invalid type argument of unary ‘*’ (have ‘int’)
*p[i-1]=*p[i];

shell.c:17:9: error: invalid type argument of unary ‘*’ (have ‘int’)
*p[n]=d;

因为你的p只是一个单纯的指针,不能使用下标操作

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632