c語言中fwrite函式求解釋,C語言中fwrite函式求解釋

時間 2021-09-08 16:34:34

1樓:清河大俠

void型別當作“萬金油”,是為了函式的通用。呼叫時,需要把具體的型別強制成void型別。

比如,一個字串buffer:

char buffer[1024];

在呼叫fwrite()的時候強制轉換:

(void *)buffer

2樓:

void *是個無型別指標,之所以這樣是為了方便不同型別指標賦值。。。void * 給任何指標賦值,或者被賦值都是不會報錯的,因為buffer 可能是個數字,也可能是字串,他的型別可以是任何東西,那麼作為引數需要一個可接受任何指標的型別,這個型別就是void *。。。。 其實指標就是4位元組的數字,在彙編裡是沒有型別區分的,就是個地址。。。

c語言會給所有資料和地址給定義型別,是為了程式設計方便,減少錯誤發生。。。

fwrite 就是按位元組寫資料,他是不需要區分資料時什麼的,所以沒必要知道資料的型別,那麼如果引數是void* 這樣給任何型別指標都能編譯通過(這很重要,編譯通不過就無法變成執行程式)。。。void 進入fwrite 會被強制轉換成 byte 型別的指標,然後將所有資料按位元組寫入檔案。。。。

void * 就是個指標傳令兵,當你希望可以得到多種型別資料的指標時,就需要將引數寫成 void *,那麼編譯器就不會阻攔型別不同的指標進行引數傳遞,這就像郵遞員不需要管你信封裡是什麼,只要發信者和接信者知道即可。。。。

3樓:匿名使用者

void型指標可以直接指向任何型別的資料。

buffer是void型,所以給buffer賦任何型別的指標都是合法的。

4樓:veket的小號

fwrite第一個引數 要求的型別是 void *

一般buffer 定義為 char 陣列 (陣列名 char * 型別)

so 通常 要 強制轉換一下的

c語言關於fwrite函式的元素個數如何理解?

5樓:匿名使用者

fwrite(a,sizeof(a),1,fp);的意思是從地址a中獲取1個資料塊,這個資料塊的大小是sizeof(a),這個大小的基本單位是位元組,然後將這個資料塊寫入流fp中。

c語言fwrite函式

6樓:丁方

fwrite 這個 函式是有返回值的, 你填寫的是傳遞資料個數是1如果成功寫入檔案, 則返回值是1 , 如果失敗, 則不等於1,根據是否等於1來判斷是否成功寫入檔案.

去掉if也能寫入檔案, 但是是否成功寫入你就不知道了,

c語言fwrite()函式中第一個引數buffer,為什麼要用取地址符號&

7樓:天雲一號

用陣列名錶示第一個陣列元素的地址,也即陣列的起始地址,對於其他陣列元素,還是需要取地址符的

c語言中清屏函式是什麼,C語言中清屏函式是什麼?

莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...

c語言程式求解釋,C語言程式,求解釋

我的看法,不一定對哦 include stdio.h struct st t 宣告結構體,長度2 2 32 void main include stdio.h 匯入標頭檔案 定義一個結構 struct st t 主函式 void main include stdio.h 包含標準的輸入輸出庫stdi...

c語言中,函式返回值怎麼用,c語言中呼叫函式如何返回多個值?

斑駁丶4129仉 一般用0表示函式執行正確,正常返回 用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。誠心為您解答每一個問題!如您滿意請採納最佳!如有疑問請繼續追問!您的好評是我們前進的動力,相互幫助,一起進步! return後接一個值。在呼叫這個函式的函式裡面,呼叫它的時候希...