关闭

sizeof和sizeof(string)的问题

标签: 编程
366人阅读 评论(0) 收藏 举报
分类:

来自 wanghetao

今天看《程序员面试宝典》一书(为了应付将要到来的微软笔试),看到了sizeof(string)这个问题。在Dev C++上测试的结果是4,很不明白。上网搜了一下,得到如下结果:

string strArr1[]={"Trend", "Micro", "Soft"};

sizeof(strArr1)=12


转自:http://apps.hi.baidu.com/share/detail/30398570

关于sizeof(string),今天看那本面试宝典的时候看到这个表达式,有点吃惊,书上写着sizeof(string)=4;当时很纳闷,难道分配4个字节大小的内存给string吗?查阅了相关资料得出结论:string的实现在各库中可能有所不同,但是在同一库中相同一点是,无论你的string里放多长的字符串,它的sizeof()都是固定的,字符串所占的空间是从堆中动态分配的,与sizeof()无关。   
      sizeof(string)=4可能是最典型的实现之一,不过也有sizeof()为12、32字节的库实现。 但是VC6.0测试后sizeof(string)=16.还是跟编译器有关


。。。。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:272715次
    • 积分:4008
    • 等级:
    • 排名:第7732名
    • 原创:103篇
    • 转载:304篇
    • 译文:4篇
    • 评论:10条
    最新评论