1. 我们用 string.Length 读取字符串长度,它是int类型,所以理论上 Int32.MaxValue 就是string.Length 能达到的最大值;2. NET 中单个对象占内存不得超过2GB,使用unicode编码的字符串类型每个字符占2个bytes,所以能达到的最大长度为1,073,741,823。而且这个长度在32位系统中是无法满足的;
这个确实有上限,可以通过std::string::max_size()函数获得。该函数获取的上限,其实是unsigned(-1)的值。所以依据平台和编译选项的不同,这个值会有变化。在某些十六位嵌入式开发环境中,这个值是65535,也就是十六进制的0xFFFF 大部分32位环境或者系统中,这个值是4,294,967,295,也就是十六进制0x...