优点
获取字符串长度时,不用遍历字符串中的每个字符,取得首地址的前 n 字节就可以得到字符串的长度(n 的取值一般是 1、2、4)
缺点
字符串长度不能超过 n 字节的表示范围,且要多开销 n 字节空间保存长度
如果涉及通信,双方交互前必须事先知道通信字符串的长度
例子
PHP
struct {<br> char *val;<br> int len;<br> } str;
Java
Java 字符串是由 char 数组和一个 int 值组成的对象,char 数组用于存储字符串的字符,int 值用于存储字符串的长度。
Redis
struct sdshdr {<br> // 已使用长度 占4位字节<br> unsigned int len;<br> // 未使用长度 占4位字节<br> unsigned int free;<br> // 字节数组,存储字符串<br> char buf[];<br>};