2021/3/23更新:
#include的 fill() 函式,可以方便快捷的初始化陣列元素為規約範圍內的任意值~
例子:將陣列元素全部初始化為233
int a[5]=;
fill(a,a+5,233);
標頭檔案:#include上測試**:或者直接上萬能標頭檔案:#include(才發現標頭檔案居然還可以開外掛程式,以後再也不怕不怕啦,牛掰啊 ~)
but,不要高興的太早哦,
#includeusing namespace std;
int main();
cout結果:
如果執行memset(e,1,sizeof(e));呢?(千萬不要做這樣的傻事!!!)
以身試錯就是我:
好了,測試部分結束,我們要分析一下,為什麼會出現這樣的情況,怎麼0、-1可以被初始化,1就不行了呢?
memset是依靠二進位制進行初始化,int是4個位元組,memset把每個位元組都賦值,也就是說,比如
因為計算機中用二進位制補碼表示數字,0和二進位制補碼為全0,-1的二進位制補碼為全1!
0,補碼是00000000 00000000 00000000 00000000結果是0
-1,補碼是11111111 11111111 11111111 11111111結果也是-1
所以對於0、-1可以被初始化,僅僅是個美麗的巧合~
但是 memset() 可以初始化乙個 bool陣列memset(b,true或false,sizeof(b));//b是個bool陣列
memset初始化陣列
memset初始化陣列 結構體也可初始化 不過我在此處並未對結構體初始化.memst按位元組進行初始化,可以選擇將陣列初始化為0或初始化為 1 include include include include include using namespace std int main include i...
memset函式初始化
對於絕大多數編譯器來講,char namekey 15 與memset namekey,0x0,sizeof namekey 或memset namekey,0 sizeof namekey 這三個是一樣的。但是有的編譯器,char namekey 15 只將namekey 0 給賦值為 0 其他成...
memset函式初始化
標頭檔案 incldue 靜態陣列 int num 10 memset num,0,sizeof num 初始化為 0 memset num,1 sizeof num 初始化為 1 memset num,0x3f sizeof num 初始化為無窮大 memset num,0x3f sizeof n...