请教各位高手C语言

来源:百度知道 编辑:UC知道 时间:2024/05/09 07:54:50
#include<stdio.h>

void strcat(char *s,char *t);
int main()
{
char a[]="hello ";
char b[]="world!";
char *c="hi ";
char *d="every body";
strcat(a,b);
printf("%s\n",a);
//strcat(c,d);
//printf("%s\n",c);
}

void strcat(char *s,char *t)
{
char *p=s;
while(*p)p++;
while(*p++=*t++);

}
以上代码为什么执行strcat(a,b);可以成功,执行strcat(c,d);就会报错?

char *str="....",这种形式定义的字符指针指向的字符串是常量,被存放在静态数据区,静态数据区的数据是不允许修改的。

这种程序存在严重安全隐患的,你对系统未分配的区域进行操作,可能会影响系统的

应该是字符数组和字符串的区别,字符串指针不能自加的吧。