A. 數組沒有初始化賦值為0嗎
普通數組沒有賦初值,默認的數組元素值是隨機數,不是0。
如果在定義數組時,數據類型前面加上關鍵字static,數組變成了靜態數組;或者把數組定義在函數的外面,成為全局變數數組,這時數組元素的值自動賦值為0。
例子:
#includeint main(void)
{
int m = 0;
static int n;
int a = 5, b = 6, c = 7, d = 8;
int k = ((m = a>b) && (n = c>d))
printf("k = %d, m = %d, n = %d ", k, m, n);
return 0;
}
輸出結果為:k = 0, m = 0, n = 0;
當變數用static修飾,但是沒有賦初始值的時候,編譯器會自動給它賦值為0.但是如果不用static 只是 int n;這樣定義的話,這個值就是未知的,因為編譯器會給這個變數分配一塊4位元組的地址空間,這個地址裡面的值就是n的值。
(1)沒有初值可以通過編譯嗎擴展閱讀
1、數組中的每個元素都有一個序號,這個序號從0開始,而不是從熟悉的1開始,使用數組元素時,指明下標即可。
2、數組下標必須是整數,取值范圍為 0 ≥ index > length。