QT中的QByteArray

24 篇文章 1 订阅

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值