memset 初始化數組 & 實現原理


初始化數組可不必使用n重for循環。


原理

memset具有初始化數組的功能,能夠初始化數組中的每一個值。

它是將數組中的每一個數的二進制的每一個字節初始化的。

比如初始化int類型的a數組:memset(a,1,sizeof(a)); 得到的其實是0001 0001 0001 0001。

關於0x......不懂的:我的博客

代碼

#include<cstring>
如果是int數組:

  • memset(g, 0, sizeof(g));                   //全部清為0
  • memset(g, 0x7f, sizeof(g));    //可全部初始化為一個很大的數(略小於0x7fffffff)
  • memset(g, 0x3f, sizeof(g));    //稍小(適用於有加法運算)
  • memset(g, 0xbf, sizeof(g));    //負值稍大
  • memset(g,-1,sizeof(g));       //全部初始為-1

補充:初始化結構體

memset(結構體變量名,0,sizeof(變量名)); 即可將這個變量中的每一個成員變量都賦值為0。


能用到的差不多就這些了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM