2009-04-16 74 views

回答

15

因爲寫入的典型I/O函數,需要一個指向char的指針。這是因爲有人認爲這是談論存儲在二進制文件中的數據的最有代表性的方式;它只是一個機器最小的可尋址單詞,依次排列。 C類型的名稱是char

7

char*僅表示指向字節序列開始的指針,這正是人們期望二進制文件包含的指針。

2

Unwind和vezult已經回答了你的問題,並且我假設你知道指針是什麼。但是,如果你想*把某些東西轉換成字符**作爲一種實際上以某種方式改變你的內存中的數據的操作(並且,例如,如果有大量數據可能需要更多時間),那麼注意不是這樣的:獲取指針的行爲。

2

你在說什麼fread()fwrite()?他們讀取或寫入的數據以void*(或const void*)的形式傳遞,因此您不必轉換。

但是在使用C++時,如istream::read(),則指向接收緩衝區的指針必須作爲char*傳遞,因此不存在隱式轉換。

相關問題