因为x只能存放10个字符,但你的000已经有10个,连同结尾的'\0',一共11个字符,因此溢出了或者说数组越界了
第一个声明就错误了
指针字符串是指针字符串
字符串数组是字符串数组
而且还有 指针字符串内容是不能被修改的
即使是
char * a="ABC";
char b[]="D";
strcpy(a,b);//这里
也是编译没错 运行出错
去掉数组a[]前边的*号,是字符数组,可以进行strcpy。去掉a[]后边的[] 是字符串指针,为常量,不能作为strcpy的第一个参数。有*有[]是字符串数组,,同意楼上回答。
"ABC"存在静态存储空间,不能修改的。如果你改成char a[],就是栈空间,应该就可以改了。
显然不对啊,你这里定义的a是一个指向字符常量指针的指针,你要用strcpy(*a,b)