taz*_*taz 1 c++ arrays stdstring visual-studio-2010 declare
这对我来说似乎很简单,但我实际上找不到任何明确说明这一点的麻烦.
是std::string stringArray[3] 不是会创建一个std::string对象数组SomeType typeArray[3]?实际数字无关紧要; 我随便挑了3个.
在Visual Studio 2010调试器中,它似乎创建单个字符串而不是字符串数组.为什么?
狂野猜测:它是调用默认std::string构造函数,然后调用未使用的索引3访问吗?如果是这样,为什么不在空字符串上引起越界异常呢?
这是否与重载[]运算符有关?
有很多方法可以编写相同的东西,而无需专门使用std::string没有问题的数组,但这种行为的解释/理由是什么?这对我来说似乎违反直觉.
编辑:我发现这个线程std :: string数组元素访问,其中答案的注释似乎观察到相同的行为.