CString比较的问题

CString Str="哈哈"; CString m_Array="哈哈"; for(k=0;k++) { for(m=0;m++) { int a=(m_Array); } for(n=0;n++) { int b=(m_Array); } }代码大概就是这么个样子,简单的写下;
问题是:假如当k=0时a==0,b=0;
但是当k=1后a==-1,b==0;
很奇怪的现象。
一样的语句在同一个函数里面比较一样的值却会出现不同的结果。
int strLength; CString m_ArrayStr[100]; CString m_RArrayStr[100]; Speech.cppSpeech.cpp
void CSpeech::SelectWords(CString Str) { strLength=8; for (int x=0;x<100;x++) //确保执行前数组为空、没有多余项 { m_ArrayStr[x]=""; m_RArrayStr[x]=""; } _RecordsetPtr m_Record=NULL; CString Str_Zpart=""; CString Str_Rpart=""; _bstr_t vWord=""; CString _Str=Str; CString _RStr=Str; linksql.OnInit(); m_Record=GetRecord(Str); //获取结果集的函数 CString m_ArrayRecord[500]={}; int Rlen=0; while (!m_Record->adoEOF) //为加快查询速度、把结果集转化为数组 { vWord=m_Record->GetCollect("词语"); CString str=vWord; m_ArrayRecord[Rlen]=str; m_Record->MoveNext(); Rlen++; } linksql.ExitConnection(); //子循环1 int num=0; for(int m=strLength;m>0;m-=2 ) { Str_Rpart=_RStr.Right(m); int n=0; while(m_ArrayRecord[n]!="") { if (Str_(m_ArrayRecord[n])==0) { m_RArrayStr[num]=Str_Rpart; _RStr.Delete(_RStr.GetLength()-m,m); if (_RStr.GetLength()>8) { m=8+2; } else { m=_RStr.GetLength()+2; } num++; break; } n++; } } //子循环2 int key=0; for (int i=strLength;i>0;i-=2) { Str_Zpart=_Str.Left(i); int j=0; while (m_ArrayRecord[j]!="") { int a=Str_(m_ArrayRecord[j]);//程序出错处 if (a==0) { m_ArrayStr[key]=Str_Zpart _Str.Delete(0,i); if (_Str.GetLength()>8) { i=8+2; } else { i=_Str.GetLength()+2; } key++; break; } j++; } } }CExeDlg.cpp
CSpeech Sp; CString Str_array[100]; void CExeDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 int sum=0; while(Str_array[sum]!="") { Sp.SelectWords(Str_array[sum]); } }