將整型陣列元素初始化為0的方法

2021-10-09 23:57:34 字數 1550 閱讀 8251

第一種方法

對於區域性陣列我們還有簡寫的初始化語法。如果乙個陣列被部分初始化,沒有被初始化的元素會被自動設定為相應型別的0。這是編譯器自動完成的。

源**如下:

#include using namespace std;

int main() ;

for (int i = 0; i < 10;i++)

cout << endl;

system("pause");

return 0;

}

輸出結果為:

0 0 0 0 0 0 0 0 0 0

請按任意鍵繼續. . .

第二種方法的源**如下:

#include using namespace std;

int main() ;

for (int i = 0; i < 10; i++)

cout << endl;

system("pause");

return 0;

}

輸出結果為:

0 0 0 0 0 0 0 0 0 0

請按任意鍵繼續. . .

第三種方法  用memset函式

memset:作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法

注意:memset函式按位元組對記憶體塊進行初始化,所以不能用它將int陣列初始化為0和-1之外的其他值(除非該值高位元組和低位元組相同)。

源**如下:

#include using namespace std;

int main()

cout << endl;

system("pause");

return 0;

}

輸出結果為:

0 0 0 0 0 0 0 0 0 0

請按任意鍵繼續. . .

第四種方法用迴圈的方法進行賦值

源**如下:

#include using namespace std;

int main()

//迴圈進行輸出,檢驗是否正確

cout << "賦值的結果為:" << endl;

for (int i = 0; i < 10;i++)

cout << endl;

system("pause");

return 0;

}

輸出結果為:

0 0 0 0 0 0 0 0 0 0

請按任意鍵繼續. . .

陣列的初始化為 0 的學習

int a 100 013a356e mov dword ptr a 5 013a3578 mov dword ptr ebp 190h 2 013a3582 push 188h 188h 即是十進位制的 392,也就是說先把陣列前兩個元素賦值,剩下的再呼叫memset置 0 013a3587 pu...

memset不能將陣列元素初始化為1的原因

memset是乙個位元組乙個位元組的設定,把乙個int的每個位元組都設定為1,也就是0x01010101,十六進製制1位是二進位制4位,兩位是二進位制8位,是1位元組 十進位制就是16843009 memset是以位元組為單位,進行初始化 當初始化char型別陣列 初始化多少都可以 char dat...

C 二維陣列的引數傳遞與全部初始化為0

a為二維陣列 引數傳遞 no.形參 實參形參型別 1a size a陣列 2 a size a指向陣列的指標 3 a b指標的指標 b size b 0 a 0 b 1 a 1 b 2 a 2 形參為a size 呼叫的時候用a。陣列 形參為 a size 實參為a。指向陣列的指標 形參為 a,呼叫...