????????访问QByteArray类对象中的某个元素主要有4种方式,分别为[]、at()、 data[]和constData[]。其中,[]和data]]方式为可读可写,at()和constData[]方式仅为可读。如果只是进行读操作,则通过at()和constData[]方式的访问速度最快,因为避免了复制处理。at()可以比operator [0更快,就是因为前者不会发生深层复制。
#include <QCoreApplication>
#include <qDebug>
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
QByteArray bal ("Hello");
if('\0'==bal[5])printf ("bal [5]=\'\\?\'\n");
QByteArray ba;
ba.resize(6);
ba [0] = 0x3c;
ba [1] = 0xb8;
ba [2] = 0x64;
ba [3] = 0x18;
ba[4] = 0xca;
ba.data () [5] = 0x31;
qDebug ()<<" []"<<ba[2]; //[] d
dqDebug ()<<"at ()"<<ba.at (2); //at() d
qDebug ()<<"data () "<<ba.data () [2]; //data () d
dqDebug ()<<"constData ()"<<ba.constData () [2]; //constData () d
dqDebug ()<<"constData ()"<<ba.constData () [5]; //constData () 1
return a.exec ();
}
qDebug()会输出ba[2]对应的字符,ASCII码为Ox64的字符是'd'。?