希望通過庫函式memset()來對乙個陣列進行初始化,需要了解一下該函式的工作原理。庫函式memset()是針對位元組操作的,其中第二個引數值被賦給第乙個引數指向的記憶體位址開始的每乙個位元組,因此,這種初始化其實存在侷限性,也導致其主要用於清除陣列內容等。比如:假設int a[10];i=0,1,2,...memset(a,0,sizeof(a)); // 此時a[i]=0x00000000(16進製制的八位,乙個int型的數32位)
memset(a,-1,sizeof(a)); // 此時a[i]=0xffffffff
memset(a,0x0f,sizeof(a)); // 此時a[i]=0x0f0f0f0f=252645135
由於500=0x1f4,400=0x190,因此,如果使用
memset(a,0x190,sizeof(a)); // 此時a[i]=0x90909090
所以,初始化過程還是建議使用迴圈語句來做。
關於memset函式
相信很多人都知道這個函式,也都用過,但可能很多人跟我過去一樣,認為它是賦初值函式,而不知它賦初值是八位八位進行的,知道了這句話那你之後的就都懂了。首先它是在標頭檔案string.h中,這說明了什麼呢,他操作的是字元型別,而字元型別有幾位呢,那就是八位,所以它就是按八位來賦初值的。之所以我們平時可以用...
關於memset函式
void memset void s,int ch,size t n 函式解釋 將s中當前位置後面的n個位元組 typedef unsigned int size t 用ch替換並返回s。memset 作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法。mem...
關於菜鳥學習memset 函式
畢業設計要用到乙個基本的單鏈表,今天寫了乙個單鏈表的函式,以前也是寫過很多遍了,憑著感覺沒怎麼想,就寫了點,可是蛋疼的錯誤要我想了好久啊 部分 如下 include link.h link cre link link insert link link head,link new node while...