如何將陣列初始化為0?
阿新 • • 發佈:2019-01-30
轉載自:http://www.cnblogs.com/programnote/p/4719078.html
C語言中,宣告陣列的語句:
int arr[100];
這樣宣告得到的數組裡面的儲存的是隨機的我們不知道的資料,對使用者來說就是垃圾。有許多情況我們要將陣列初始化為全零的情況才能進行其他操作。
最簡單的方法就是用一個迴圈吧陣列所有元素設定為0:
int arr[100];
int i = 0;
for(i = 0 ; i < 100 ; i++)
arr[i] = 0; //This will make all ZERO
我們還可以利用其他幾種方式做到初始化陣列為0:
1、全域性變數和靜態變數初始化時會自動被設定為0。如果們宣告全域性變數,那麼他在執行前會變成全0。
int arr[1024]; // This is global
int main(void)
{
//statements
}
2、對於區域性陣列我們還有簡寫的初始化語法。如果一個數組被部分初始化,沒有被初始化的元素會被自動設定為相應型別的0。這是編譯器自動完成的。可以這樣寫:
int main(void)
{
int arr[1024] = {0}; // This will make all ZERO
// statements
}
變長陣列(柔性陣列)不可用。
3、你還可以用memset函式在程式開始時初始化陣列。這條命令這在你已經修改了陣列之後又想將它重置為全0特別有用。(
標頭檔案:#include <string.h>
int arr[1024];
arr[5] = 67;
memset(arr, 0, sizeof(int) * 1024); //This will reinitialize all to ZERO