函數聲明:void *memset(void *s, int ch, size_t n);
用途:為一段內存的每一個字節都賦予ch所代表的值,該值采用ASCII編碼。
所屬函數庫:<memory.h> 或者 <string.h>
參數:(1)s,開始內存的地址;(2)ch和n,從地址s開始,在之後的n字節長度內,把每一個字節的值都賦值為n。
使用舉例:
代碼如下
編譯運行結果
說明:
該函數最常用的用途就是將一段新分配的內存初始化為0。例如我們代碼的第9-10行。
需要注意的是,函數第二個參數的值代表的是即將設置的每個字節的值,因此對於第二個參數不是0的情況要格外小心。例如我們代碼的第12-13行。intArray[0]本來是一個四字節的整數,它的每一個字節都將變成1。第12行運行完畢,intArray[0]的內容如下
(二進制)00000001 00000001 00000001 00000001 = (十進制)16843009
這也是為什麼第13行輸出的結果是16843009。
------------------------------------分割線------------------------------------
C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm
讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm
讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm
讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm
將C語言梳理一下,分布在以下10個章節中: