【发布时间】:2012-12-13 02:29:37
【问题描述】:
假设一个文本文件包含以下文本:
1.11111111
2.22222222
3.33333333
4.44444444
5.55555555
文件的大小是多少?我们如何确定它?
假设:[5*(每行十个字符10个字节)+每个字符串末尾的5个空指针] = 55个字节。
但是 windows 显示了 3 个额外的字节,总共 58 个字节。这 3 个字节是从哪里来的?
编辑: NULL 指针占用零字节。所以,我们从某个地方得到了 8 个额外的字节。
更多编辑: 经过一些试验,每次我们按 ENTER 键,我们都会创建 2 个字节。这就是 8 个字节的来源——按 ENTER 4 次。这些字节在编程术语中叫什么?
【问题讨论】:
-
用十六进制编辑器打开它?我的猜测是
\n和/或开销 -
文件中的行没有空终止符,只有字符串有。
-
另一个你看不到的额外字节的另一个原因是 BOM。 en.wikipedia.org/wiki/Byte_order_mark
-
行不以“空指针”结尾,“空指针”不占用零字节来存储...
-
@bames53,特洛伊:你是对的。 sizeof('\0') 显示 1 个字节。我认为每一行都将被视为一个字符串,因此以空指针结尾。