111lj 发表于 2014-11-12 18:59:57

仰望天上的光 发表于 2014-11-12 19:59:21

char *b;定义了一个指针,没有初始化,所以b的值是随机的,也就是说,b指向一个随机内存
接着while(*b++=*a++)LZ向随机内存强行写数据,运行时刻编windows操作系统判为违规操作

tlwangxd 发表于 2014-11-13 15:22:09

学习

风之残月 发表于 2014-11-13 19:24:50

因为char *b; 只是定义了一个指针,但没有定义它指向哪里,*b++ 是往 b 随机指向的内存处写入,一般系统会报错并终止程序

111lj 发表于 2014-11-13 20:27:50

仰望天上的光 发表于 2014-11-13 20:54:05

111lj 发表于 2014-11-13 20:27
#include
void main()
{


char *b="efgh";这里,b指向了一段字符串,这段字符串是常量,就是不能修改的意思
while(*b++=*a++)企图修改这段字符串,所以运行时报错
把 char *b="efgh";改为 char b[]="efgh";就可以了
页: [1]
查看完整版本: 为什么字符串a不能复制到字符串b