可以用成员函数size、length和count来获取字节数组的大小。除了名字不同,这3个函数是等同的,函数的原型声明如下:
int size();
int length();
int count();
这3个函数返回字节数组中的字节数。Size()函数的用法如下:
?
QByteArray ba("Hello")
int n = ba.size();
执行后,n等于5。
可见,size()并不包含字符串末尾自动添加的'\0'。另外,如果以字符串形式初始化,中间有'\O',则size()不会统计'\O'及其后面的字符。
QByteArray ba2("He\ollo");
int n = ba2.size();
执行后,n等于2。
通过resize分配空间,然后通过逐个赋值来进行初始化的话,中间某个字节数据是'\0',并不会被size()函数截断。比如:
QByteArray ba3;
ba3.resize (6);
ba3[0] = 0x3c;
ba3[1] = '\0';
ba3[2] =0×64;
ba3[3] =0x18;
ba3[4] - 0xca;
ba3.data()[5]=0x31;
n=ba3.size(): //n==6