c++ 中用string定义的字符串数组 调试时在局部变量窗口内为什么只能看到第一个数组元素?
比如:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;int _tmain(int argc, _TCHAR* argv[]){
string arrstr[7]={"sunday","monday","tuesday","wednesday","thursday","friday","satruday"};
int arrinit[3]={1,2,3};
return 0;
}
程序没有错,断点调试时,在局部变量窗口内能看到arrstr的第一个元素sumday?但如果用arrstr[2]还是能得到tuesday的。而arrinit在局部变量窗口内的三个元素都可以看的到?为什么?
比如:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;int _tmain(int argc, _TCHAR* argv[]){
string arrstr[7]={"sunday","monday","tuesday","wednesday","thursday","friday","satruday"};
int arrinit[3]={1,2,3};
return 0;
}
程序没有错,断点调试时,在局部变量窗口内能看到arrstr的第一个元素sumday?但如果用arrstr[2]还是能得到tuesday的。而arrinit在局部变量窗口内的三个元素都可以看的到?为什么?
typedef std::basic_string<char, char_traits<char>, allocator<char> > string;
// for vc6 std::string
而你查看basic_string会发现
typedef basic_string<_Elem, _Traits, _Ax> _Myt;但是如果你做一个CString 数组
CString arrstr[2]={CString(_T("sunday")),CString(_T("monday"))};
你会发现会像普通的数组一样调试的时候能看到它的值
我就研究了这么多,模板我不太懂 自己体会吧