C語言數組的全部元素初始化成相同的值

  這個問題一直困擾了我好久,我向來都用for來控制置-1;由於我不會用memset(つ﹏⊂)我是個蒟蒻。今天終於學會了一點皮毛,趕忙記錄一下數組

方法一:函數

  簡單粗暴,快捷有效。for循環一點點的置1,這個方法一直有效,沒有限制條件,除非你不知道大小。學習

方法二:spa

  創建數組的時候同時完成初始化,若是是靜態建立數組那麼只能將數組初始化爲0;內存

   1 int arr[10] = {0};string

  若是是動態建立數組的化就能夠用stdlib裏的calloc進行內存的動態分配 ,開闢空間後默認置0,for循環

  不過方法二只能置0。ast

方法三:循環

    用string裏的memset函數來處理,但因爲其是對每個字節賦值的因此擁有四個字節的int,只能past,可是由於按字節賦值對0和-1沒有影響因此能夠用來置0或-1;方法

  爲何0和-1能夠呢,由於-1的BCD碼爲32個1,0呢則爲32個0,因此截取成雖然是按字節存寫的可是int讀取時都是相同的值因此無所謂了。

  1就別想,它的BCD碼是31個0一個1……這個偏差,能飛到天上去。

   1 memset(arr, (-1), sizeof(arr)); 

 

  大概就是醬紫,(由於只會這些,只能寫道這裏了)

 

學習不易,諸君共勉!

相關文章
相關標籤/搜索