memset的功能是將一快記憶體中的內容以單個位元組逐個拷貝的方式放到指定的記憶體中去。
如memset(dp,0,sizeof(dp))其中dp為乙個int型陣列,因為int為4個位元組,那麼每乙個位元組的位置上都放 00000000 最好方的就是
00000000 00000000 000000000 00000000 將該二進位制轉化為10進製後為0
如果放-1 。則放的是 11111111 11111111 11111111 11111111 (每乙個8為是-1的補碼。)轉化為十進位制後也是-1
但是放1 則放的是 00000001 00000001 00000001 00000001 轉化為十進位制後顯然不為1
再看乙個 如果放127 (127的二進位制表示是01111111)則放的是01111111 01111111 01111111 01111111 轉化後是2139062143這樣就可以講陣列初始化為乙個很大的值
但是如果放128 (128的二進位制是10000000)則放的是10000000 10000000 10000000 10000000 **化為十進位制)
因為最高位是1 所以是負數,因為這是補碼,還原成原碼
補碼 10000000 10000000 10000000 10000000
反嗎 10000000 10000000 10000000 01111111
原碼 11111111 01111111 01111111 10000000
這個數是-2139062144。這樣就可以講陣列初始化為乙個很小的數。
關於memset函式的用法
函式原型 void memset void s,int c,size t n memset 作用是在一段記憶體塊中填充某個給定的值,它對較大的結構體或陣列進行清零操作的一種最快方法。1.如果用memset a,1,20 就是對a指向的記憶體的20個位元組進行賦值,每個都用ascii為1的字元去填充,...
linux中memset的正確用法
起因 希望對各種型別的陣列進行初始化,避免野值 函式標頭檔案 include void memset void s,int c,size t n 使用說明 the memset function fills the first nbytesof the memory area pointed to ...
linux中memset的正確用法
include the memset function fills the first n bytes of the memory area pointed to by s with the constant byte c.即對各種型別的陣列進行初始化,避免野值,注意是按位元組填充 void mem...