69,373
社区成员
发帖
与我相关
我的任务
分享
char* p1="abcdefg";
char* p2;
p2=p1;
strcpy(p2,p1);
#include <stdio.h>
#include <string.h>
int main()
{
char* p1 = "abcdefg"; // 正确的写法应该是 const char* p1="abcdefg";
char* p2;
p2 = p1; // p2指针 指向 p1指针指向的 常量字符串
strcpy( p2, "87843" ); // 修改 p2,但是p2 实际指向 p1指向的,所以就错误了
printf( "%s", p2 );
return 0;
}
第一句写成正确的 const char* p1="abcdefg";
后面调用错误的 编译的时候就会出错,然后就可以改正了
或者改成 char p1[]="abcdefg"; 后面就可以正确调用
char* p1="abcdefg"; // 跳警告的,正确的写法应该是 const char* p1="abcdefg";
// 不会通过,p1这个指针去修改 常量字符串
char* p2;
p2=p1; // p2指针 指向 p1指针指向的 常量字符串
strcpy(p2,p1); // 见2楼回答