第一種方法
對於區域性陣列我們還有簡寫的初始化語法。如果乙個陣列被部分初始化,沒有被初始化的元素會被自動設定為相應型別的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,呼叫...