第一个代码:
#include<stdio.h>
int main()
{
char *a={"I am a student"};
char *b;
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
puts(b);
return 0;
}
第二个代码:
#include<stdio.h>
int main()
{
char*a="I love china";
char *b="I am a student";
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
puts(b);
return 0;
}
第三个代码:
#include<stdio.h>
int main()
{
char*a="I love china";
char *b="I am a student";
int i;
for(i=0;*(b+i)!='\0';i++)
*(a+i)=*(b+i);
puts(a);
return 0;
}
第一个代码虽然能运行,但实际是有问题的,因为b并未被分配空间就做了赋值。
第二、三个代码不行,是因为a和b的指针都指向常量字符串,属于不可修改空间,因此有问题。