回复 7楼 azzbcc
1. char *s1;
s1是一个未被初始化的指针变量, VC6 调试版本下未被初始化的标志 0xCC
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
s1 = Get1();
2.Get1()
进入到函数内部
我输入的数据为 123
3.当出了Get1()这个函数
s1 = Get1()的返回值.
s1内容的改变过程
执行下一句:
printf("Main:%s\n", s1);
此时0x0012ff18中的数据还没有被改变,因此输出的数据还是之前的123.
走完这步之后, 0x0012ff18中的内容被改变了.(因为调用printf(),函数内部进行了一些操作)
4. Out(s1);
当你再次把s1传入到Out()
void Out(char *a)
char* a //新的一个临时变量(前面说过了未被初始化的变量,标志 0xCC)
因此输出的结果为:未被初始化变量的标志,一直延续到'\0'结束.