当我们将所有内容写入文件时,为什么必须将其转换为char*?
出于好奇,当我们将某个东西写入(二进制)文件时,为什么要将其转换为char*。这是因为有人认为最有代表性的方式是谈论存储在二进制文件中的数据;它只是一堆机器上最小的可寻址单词,按顺序排列。它的C类型名称是char当我们将所有内容写入文件时,为什么必须将其转换为char*?,c,C,出于好奇,当我们将某个东西写入(二进制)文件时,为什么要将其转换为char*。这是因为有人认为最有代表性的方式是谈论存储在二进制文件中的数据;它只是一堆机器上最小的可寻址单词,按顺序排列。它的C类型名称是charchar*仅仅表示一个指向字节序列开头的指针,这正是人们期望二进制文件包含的内容。Unwind和vezult已经回答了您的问题,我假设您知道指针是什么。但是,如果您认为*将某物转换为字符**是一种实际上会以某种方式改变内存中数据的操作(例如,如果有大量数据,可能需要更多时间),那么请注意
char*
仅仅表示一个指向字节序列开头的指针,这正是人们期望二进制文件包含的内容。Unwind和vezult已经回答了您的问题,我假设您知道指针是什么。但是,如果您认为*将某物转换为字符**是一种实际上会以某种方式改变内存中数据的操作(例如,如果有大量数据,可能需要更多时间),那么请注意,这不是获取指针的行为。您指的是fread()
和fwrite()
?他们读取或写入的数据作为void*
(或const void*
)传递,因此您不必进行转换
<>但是在C++中,当使用,那么接收缓冲区的指针必须作为<代码> char */COD>传递,所以没有隐式转换。