读书人

关于sizeof(string)类的有关问题

发布时间: 2012-02-10 21:27:42 作者: rapoo

关于sizeof(string)类的问题
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str[]={ "trendtrendtrendtrendtrendtrendtrendtrend ", "micro ", "soft "};
int a=sizeof(str);//VC++6.0调试结果为48
int b=sizeof(string);//VC++6.0调试结果为16
for(int i=0;i <a/b;i++)
{
cout < <str[i];
}
return 0;
}
想问下为什么a,b的结果会是这样,貌似不同的编译器得到的结果不一样。。。

[解决办法]
int a=sizeof(str);//VC++6.0调试结果为48
int b=sizeof(string);//VC++6.0调试结果为16
-------------------------------------------------
a=str是数组的长度,这个数组3个元素(string类型),所以长度为3*sizeof(string).
b=sizeof(string);是类的大小。编译器得到不同的结果很正常,因为没有规定string具体怎么实现。

读书人网 >C++

热点推荐