#include<stdio.h>
int main()
{
char *string;
string="ksjk";
string="sjdhj";
printf("%s\n%s",string,string);
getch();
return 0;
}
为什么输出的结果两个都是sjdhj?,就算是输出一样的两个,也应该是ksjk啊?
#include<stdio.h>
int main()
{
char *string;
string="ksjk";
string="sjdhj";
printf("%s\n%s",string,string);
getch();
return 0;
}
为什么输出的结果两个都是sjdhj?,就算是输出一样的两个,也应该是ksjk啊?
你定义的string是个指针,指针式没有内存空间的,它只指向地址,你的两个赋值语句string="ksjk";
string="sjdhj";
实际上是将字符串的首地址赋予了指针,并不是字符串本身,因此你的后一个赋值语句会将你前面的一个覆盖掉
进行的copy操作,后一次把前面那次覆盖了,所以永远只能看到最后一次的操作