1樓:小夏聊生活
普通陣列沒有賦初值,預設的陣列元素值是隨機數,不是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的值。
2樓:匿名使用者
那要看你指的不賦初值是哪種。
如果是char a[10];
那這10個元素都是隨機的。
如果是char a[10] =
那除了賦值的3個元素, 其他都是0
3樓:匿名使用者
放在main函式里,預設初值隨機數。
放在main函式外,預設初值為0.
4樓:匿名使用者
如果你想測試它是不是隨機的。
用這一段**:
#include
#include
int main(void)
這樣你就會看到arr裡面充滿了垃圾值。
或者用下面的**:
#include
#include
int main(void)
5樓:葉掣樊夏煙
應該是隨機值,你可以做個陣列輸出,別在編譯器執行,看一下結果;
6樓:匿名使用者
我記得是隨機值。你可以自己上機試下呀。
c語言中定義變數不賦初值預設是多少
enjoy蘰踄繧鍴 沒有加static,預設為auto 型,此時,不給初值,變數的初值是隨機的。如果加了static不給初值,變數的初值是預設的 0。其實不能說不賦初值就不行,對於區域性變數,不賦初值的話,其實他裡面存的是一個隨機的值,誰也不知道他是多少,因此如果沒賦初值的情況下就使用它,程式是完全...
c語言填空若字元陣列定義為char aancdn
金色潛鳥 char a ancdn 0 字串長度為 5。因為 字串長度 算到 字串結束符 以前,不包括 字串結束符。例如 123456 089abcd 0 字串長度計算到第一次遇到的結束符 0,長度是 6,後面不算。char a ancdn 0 佔記憶體 7 個位元組,雖然你加入了一個結束符,但 因...
C語言中如果陣列a 30,0是哪行哪列的初值
你給x 3 2 賦值為0,裡面其他所有的值,也預設為0了,你輸入賦值是組的0 1 2的一個個值賦值,第三個值因該拋棄了,你輸出的又是組 0的1的個值和2的個值 這個值你初始化的時候是0 組1的第一個值 所以輸出的是2,0,6 你沒 取地址是怎麼把數弄進去的真神奇 你還是 沒有好好看書啊 你輸入的時候...