C语言:为什么不能用指针下标赋值?

先上代码:

#include
int main()
{
     char *p="fish";
     p[0]=k;
     printf("%s",p);
     return 0;
}

没有输出结果,有小伙伴帮忙看看吗👀

因为p是常量指针,不允许修改。跟下标没关系
改成 char p[] = "fish"就可以修改了