如果定义 string s("Hello,world!");
然后输出sizeof s,结果是28
直接输出sizeof "Hello,world"结果是13
第二个结果我能理解,第一个为什么是28呢?
新手提问,要是有违规的地方还请多多包涵,提前谢过解惑的大神!
5 个解决方案
#1
你sizeof s是对这个s对象进行求它所在字节,也就是对string求所占字节数,与你的字符串所占字节数无关
#2
string 是一个类,知道不?
#3
就是说不管s里面存储多长的字符串,s所占的存储空间都是28个字节吗?有点不太懂,要是字符串太长会不会存不下呢。。。
#4
string的成员中有个指针,它指向的内存才是真正放“字符串”的。
#5
这么说我就完全明白了,谢了
#1
你sizeof s是对这个s对象进行求它所在字节,也就是对string求所占字节数,与你的字符串所占字节数无关
#2
string 是一个类,知道不?
#3
就是说不管s里面存储多长的字符串,s所占的存储空间都是28个字节吗?有点不太懂,要是字符串太长会不会存不下呢。。。
#4
string的成员中有个指针,它指向的内存才是真正放“字符串”的。
#5
这么说我就完全明白了,谢了