变量值发现意外变化,疑惑……
有哥 2003-07-20 02:22:27 下面的函数用于生成一个由xchar和nchar组成的随机字符串,每4个字母间空一个空格如:"fdfd dfdf fddf dfdd dddf dfff",用在一个指法训练的模块中。
xchar和nchar为类的char型私有成员,仅在构造函数中赋过初值,其它函数未曾读取或修改过。
AnsiString __fastcall TFraStudy::GetStr()
{
AnsiString xc;
int i,m;
randomize();
for (i=0;i<29;i++)
{
m=random(100);
if (i>0&&(i+1)%5==0)
xc+=" ";
else
if (m>50)
xc+=xchar;
else
xc+=nchar;
}
return xc;
}
此函数在最初几次(3-4次不定)调用结果是正确的,但以后便只会返回单一字母组成的串,跟踪发现xchar居然等于了nchar,深感不解。有谁遇到过这等怪事?