|
发表于 2021-1-29 11:44:38
|
显示全部楼层
首先sizeof(a)返回的是 "a的类型所占的内存空间大小" 所以这里返回的是"String类型"的大小. 不管"a"到底实际用了多少内存, "a的类型" 所占的内存都是不变的. 你可以尝试一直给 a+= "x" , 就会发现length不断增加但是sizeof的值一直是28
- #include <iostream>
- #include<string>
- int main()
- {
- std::string a{ "C:\\Windows\\System32" };
- std::cout << sizeof(a) << std::endl;
- std::cout << a.length() << std::endl;
- std::string b;
- std::cout << sizeof(b) << std::endl;
- while (1) {
- system("pause");
- a += "x";
- std::cout << sizeof(a) << std::endl;
- std::cout << a.length() << std::endl;
- }
- }
复制代码 |
|