C語言字元陣列不賦初值是預設為 0 還是隨機值

時間 2023-03-08 16:45:10

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 你沒 取地址是怎麼把數弄進去的真神奇 你還是 沒有好好看書啊 你輸入的時候...