QT中的QByteArray

QByteArray可以提供一个字节数组,QByteArray可用于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串 . 使用QByteArray比使用const char *更方便,其中调用data()函数即可返回char*的数组的指针。

QByteArray字节数组在最后会保留一个额外的’\ 0’字符,并且这个额外的\0字符不计入size()大小,其可以用来替代C++中的char*数组或者void*数组。

除了QByteArray之外,Qt还提供了QString类来存储字符串数据。对于大多数用途,QString是您要使用的类。它存储16位Unicode字符,使您可以轻松地在应用程序中存储非ASCII /非拉丁字符。此外,QSt API在Qt API中始终使用。 
QByteArray适合的两个主要情况是当您需要存储原始二进制数据,并且当内存保护至关重要时(例如,使用嵌入式Linux的Qt)

初始化QByteArray的一种方法是const char *将其传递给其构造函数。例如,以下代码创建一个大小为5的字节数组, 
其中包含数据“Hello”:

QByteArray ba("Hello");

虽然size()为5,但是字节数组在最后还会保留一个额外的’\ 0’字符, 以便如果使用一个函数来请求指向底层数据的指针(例如调用data()),那么指出的数据保证被’\ 0’终止。

另外还可以参考另一种构造方法,对理解其自己保留的额外的 \0 字符有帮助:

QByteArray ba;

ba.resize(5);

ba[0] = 0x12;

ba[1] = 0x13;

ba[2] = 0x14;

ba[3] = 0x15;

ba[4] = 0x16;

最后本文章参考:https://blog.csdn.net/qq_38315190/article/details/80586331

你可能感兴趣的:(编程,QT)