C++中字符串和char []类型的区别

在本节中,我们将看到C ++中string和char []之间的区别是什么。char []基本上是一个字符数组。因此,此数组具有一些属性。这些属性在下面列出。

  • 如果在堆栈部分中分配了char [],则它将始终占据256个字节的空间。它不会取决于文本的大小。

  • 如果我们使用malloc()calloc()动态地为它分配空间到堆部分中,那么我们有责任在使用完之后释放内存,并且我们总是有堆分配的开销。

  • 如果字符数组的大小大于256个字符,则程序可能会崩溃。它可能在我们的代码中生成难看的断言消息。

  • 为了获得字符串的长度,我们必须扫描整个字符数组,直到每次到达'\ 0'字符为止。

另一方面,C ++将字符串放入其标准命名空间。该字符串是一个类,并且其中包含字符数组。它自动为用户管理。在大多数情况下,字符串的内置数组为16个字符。因此,对于较短的字符串,它不会对字符串进行分段,而对于较大的字符串,它将使用堆部分。

C ++字符串具有内置的'\ 0'字符。它存储字符串的长度而无需计算。至于较短的文本不占用堆,则可以防止缓冲区溢出。而且这些字符串在C ++中易于使用。