关于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具体怎么实现。