奇怪Cstring的全局变量,该如何解决

奇怪Cstring的全局变量
我定义了两个Cstring的全局变量:

CString str[2]={"a","b"};
CString str2[2]={"c","d"};

然后用对话框输出:
CString *test=str2;
CString s="";
int i=0;
while(test[i])
{
s+=test[i];
i++;
}
对话框中显示如下内容:
cdab
为什么不是cd?

------解决方案--------------------
楼主什么编译器啊?

s+=test[i];
这个你能编译的过?
------解决方案--------------------
因为它们在内存中是连续的。
------解决方案--------------------
 cd 

------解决方案--------------------
我VS2010,崩溃没商量啊。