1. 程式人生 > >memset是如何賦值的以及一些遐想

memset是如何賦值的以及一些遐想

根據測試得知。。。

memset是獲取第二個引數的二進位制從右邊起的八位也就是一個位元組,

不斷重複的填充第三個引數那麼多次填充到以第一個引數為起端的連續區域裡

至少C/C++是這樣

所以呢,如果要給一個int陣列每個元素都賦值一個同樣很大的數,

我們當然希望一個數的二進位制的1儘可能的多,

由於int在計算機裡是用補位表示的,也就是說當給一個有7個1的二進位制去賦值的時候得到的數是最大的

這個數就是127啦

為什麼不是8個呢……因為符號位若為1就是負數了

當然了很顯然想到若是無符號的int,也就是unsiged int的話,賦值8個1就可以得到無符號位的最大數賦值陣列的每個元素

也就是255啦

於是以此類推,就可以很巧妙的用memset給陣列賦值一連串相同的你希望的數