指针与字符串问题
#include<stdio.h>#include<string.h>
void insert(char *str,char *sbustr,int i)
{ char *p,*q;
int l_str,l_sbustr;
l_str=strlen(str);
l_sbustr=strlen(sbustr);
p=str+i;
q=str+l_str;
while(q>=p)
{
*(q+l_sbustr)=*q;
q--;
}
for(;*sbustr!='\0';sbustr++,p++)
{
*p=*sbustr;
}
puts(str);
}
main()
{ char *str="jinsiang";
char *sbustr="**";
int i;
printf("请输入一个数:");
scanf("%d",&i);
insert(str,sbustr,i);
}
在这个程序里有一个问题,就是在char*str="jinsiang";这出问题了,我看了别人把这修改成了个字符数组char str[10]="jinsiang";
这样编译就是对的,我想知道为什么要这样修改呢???
谢谢大虾们了!