回 帖 发 新 帖 刷新版面

主题:新手入门,请各位多指教

#include<stdio.h>
#include<string.h>
void main()
{
   char *p="ccc";
   strcpy(p, "abcd");
   printf("%s",p);
}

这段代码运行时会出错,如果把char *p = "ccc"改成char p[]="abcd"
就不会出错,这是为什么呢?
请各位指教,谢谢!

回复列表 (共2个回复)

沙发

*p只是一个指针,只有申请了内存malloc,使指针只向该内存首地址,那才行。

板凳


我觉得指针p指向字符串“ccc”的首地址,下面的strcpy是改变该地址的内容,
不应该有错的,能详细的解释一下吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册