QByteArray,QString 与 标准字符串的区别

QByteArray、QString 与标准字符串的区别

1. 编码处理
  • QByteArray
    存储原始字节数据(char*),不涉及编码转换。适合处理二进制数据(如图像、网络数据包),或明确知道编码格式的文本(如UTF-8)。
    示例:

    QByteArray data = "\x48\x65\x6C\x6C\x6F"; // 直接存储字节序列
    

  • QString
    使用UTF-16编码存储文本,支持国际化字符集。自动处理编码转换,适合用户界面文本、多语言场景。
    示例:

    QString text = "你好世界"; // 自动转换为UTF-16
    

  • std::string
    存储窄字符(char),编码依赖系统环境(如ASCII、Latin-1或本地代码页)。适合与C标准库交互或简单文本处理。
    示例:

    std::string s = "Hello"; // 编码由编译环境决定
    

2. 内存管理
  • QByteArray/QString
    采用隐式共享(Copy-on-Write),减少内存拷贝开销

你可能感兴趣的:(QByteArray,QString,std,string,内存溢出,内存指针,const,char)