首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-10 
关于sizeof(string)类的问题#includeiostream#includestringusingnamespacestdintmain(){stringstr[]

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

热点排行