字符串存储格式
2023-04-24 08:33:13 0 举报
AI智能生成
登录查看完整内容
字符串存储格式
作者其他创作
大纲/内容
在首地址的 n 字节中保存字符串的总长度
获取字符串长度时,不用遍历字符串中的每个字符,取得首地址的前 n 字节就可以得到字符串的长度(n 的取值一般是 1、2、4)
优点
字符串长度不能超过 n 字节的表示范围,且要多开销 n 字节空间保存长度
如果涉及通信,双方交互前必须事先知道通信字符串的长度
缺点
struct { char *val; int len; } str;
PHP
Java 字符串是由 char 数组和一个 int 值组成的对象,char 数组用于存储字符串的字符,int 值用于存储字符串的长度。
Java
struct sdshdr { // 已使用长度 占4位字节 unsigned int len; // 未使用长度 占4位字节 unsigned int free; // 字节数组,存储字符串 char buf[];};
Redis
例子
保存总长度
在字符串的结尾处使用一个规定好的特殊字符,即结束符
没有记录长度的开销,即不需要存储空间记录长度信息
如果涉及通信,通信字符串可以根据实际情况随时结束,结束时附上结束符即可
获取字符串长度需要遍历所有字符,寻找特殊结尾字符,在某些情况下处理效率低
ASCII 编码使用一个字节 \\0
Unicode 编码使用两个字节 \\0
使用结束符 \\0 作为字符串结束标志
C++
使用 $ 作为结束符
DOS 下的 8086 汇编
结束符
字符串的存储方式
0 条评论
回复 删除
下一页