编译器给string的固定大小~~~~

yihan7h 2006-05-04 01:02:53
在C++中,striring属于类~~~~而类在建立对象后就会分配空间~~~
那么string也应该是这样.在定义string类型参数,再对其赋值,我们都知道可以是一个字符,也可以是很长的字符串~~例:string t1,t2;t1
t1="hh";
t2="hhhhhhhhhhhhhhhhhhh";
cout<<sizeof(t1)<<sizeof(t2)<<'\n';
结果都是16.
这和上面设想的一样,那么大小是16,又到底能放多少字符呢???不明白,既然char大小是1,只能放一个字符,难道string只能放16个字符吗?但这又显然不对~~~~
望各位指教~~~
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
六个钱包 2006-05-04
  • 打赏
  • 举报
回复
同意
char c[]="asdf";
取长度 用strlen(c);而不用sizeof(c);
yihan7h 2006-05-04
  • 打赏
  • 举报
回复
明白,谢谢各位~~~~:)
  • 打赏
  • 举报
回复
赞成楼上的楼上
Dong 2006-05-04
  • 打赏
  • 举报
回复
赞成楼上的.
jingtan 2006-05-04
  • 打赏
  • 举报
回复
string其实和vector容器差不多.字符串是保存在动态分配的内存里面的.string实例变量里面存放的只是一个内存块的指针.保存在里面的字符越多占用的内存也越多.当现有的内存块不能满足需要的时候,它会自动去申请新的内存.

sizeof运算符获得的是类的大小,而不是字符串的长度.
yihan7h 2006-05-04
  • 打赏
  • 举报
回复
第三行多写了个t1,应该是string t1,t2;

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧