當前位置:首頁 » 編程語言 » c語言哪種變數未賦值時為0
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言哪種變數未賦值時為0

發布時間: 2022-05-24 03:40:12

c語言中的未賦值參數是否默認為0

不確定。
但一般情況是,靜態變數(static)與全局變數都默認為0,局部變數值不確定(很多情況下不為0)。
你可以測試一下:
#include
<stdio.h>
int
a;
//全部變數
int
main()
{
static
int
b;
int
c;
printf("a
=
%d,
b
=
%d,
c
=
%d\n",
a,
b,
c);
return
0;
}
變數在定義時就將其初始化是比較完全的方法。很多軟體問題都是由於變數未初始化引起。

② c語言的變數如果不付初值,變數的值是0么

不一定。是一個不確定的數。因為沒給變數付值,這個變數的地址空間可能已經存儲了數據而沒有清除。當你個變數付初值後,新付的值會將以前的數據覆蓋掉。所以變數如果不付初值,它是一個不確定的數。

③ 在c語言中沒有對一個變數賦值它的值是否自動賦0

是否會自動賦值為0,取決於變數的類型。
1、全局變數,包括靜態全局變數,和非靜態全局變數,在沒有初始化值時,其值自動為0.
即定義在所有函數外,不歸屬於任何一個函數的,在沒有初始化值時,自動為0。
2、靜態局部變數。
當定義在函數內的局部變數,有static
標記時,默認初始化為0值。
3、非靜態局部變數,無默認初始值,C標准規定初始化值為隨機值,但具體實現由編譯器決定。

④ C語言字元數組不賦初值是默認為'\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的值。

(4)c語言哪種變數未賦值時為0擴展閱讀

1、數組中的每個元素都有一個序號,這個序號從0開始,而不是從熟悉的1開始,使用數組元素時,指明下標即可。

2、數組下標必須是整數,取值范圍為 0 ≥ index > length。

⑤ c語言,當數組某些元素未被賦值時其值為多少

數組未初始化有兩種情況:

1,未初始化,其值有兩種可能:一種是全局數組,被編譯器初始化為0。一種是局部數組,為隨機數。

2, 已初始化,局部數組和全局數組,已初始化,未賦值的數組都會被賦值為0。

(5)c語言哪種變數未賦值時為0擴展閱讀:

數組:是有序的元素序列。 若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。

用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。 這些無序排列的同類數據元素的集合稱為數組。

聲明固定大小的數組:

有三種方法聲明固定大小的數組,用哪一種方法取決於數組應有的有效范圍:

1,建立公用數組,在模塊的聲明段用 Public語句聲明數組。

2,建立模塊級數組,在模塊的聲明段用 Private語句聲明數組。

3,建立局部數組,在過程中用 Private語句聲明數組。

參考資料來源:網路-數組



⑥ C語言定義一個整型二維數組,若沒有賦值,系統自動給的是0嗎

C語言規定,普通數組沒有賦初值,默認的數組元素值是隨機數,不是0。
如果在定義數組時,數據類型前面加上關鍵字static,數組變成了靜態數組;或者把數組定義在函數的外面,成為全局變數數組,這時數組元素的值自動賦值為0。

⑦ c語言中定義變數不賦初值默認是多少

沒有加static,默認為auto 型,此時,不給初值,變數的初值是隨機的。
如果加了static不給初值,變數的初值是默認的 0。

其實不能說不賦初值就不行,對於局部變數,不賦初值的話,其實他裡面存的是一個隨機的值,誰也不知道他是多少,因此如果沒賦初值的情況下就使用它,程序是完全不可控的,如你的圖1,直接在while里去判斷b了,因此這個while判斷是不可控的。

【c語言】

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。

⑧ c語言為什麼整型變數未賦值是隨機值,而二維數組未賦值是0

1、首先題目是錯誤的,問題應該是「初始化」而不是「賦值」。
2、其次整型變數和數組在初始化未給值的情況下都會是隨機值,而不是你說的數組就是為0.
3、最後還有特殊情況那就是如果數組在初始化的時候有給了幾個值,那麼其他沒有給值的元素都會被編譯器置為0.
比如int
a[5]
=
{1,
2};那麼編譯器會幫你把後面的三個元素也置為0,只有在這種情況下才是0,其他的情況都是隨機值。

⑨ C語言中未初始化的變數的值是0么

C語言中,全局變數和局部靜態變數是存儲在靜態存儲區的,他們在分配的時候都被系統默認初始化為0;而局部自動變數是在棧上分配內存的,如果不對它們進行初始化,那麼他們可能是任意的隨機值。

⑩ 在c語言中沒有對變數賦值,它的值是否自動賦0

它的值是否會自動賦值為0,取決於變數的類型。

  1. 全局變數包括靜態全局變數和非靜態全局變數,在沒有初始化值時,其值自動為0,即定義在所有函數外,不歸屬於任何一個函數的,在沒有初始化值時,自動為0;

  2. 靜態全局變數當定義在函數內的全局變數,有static標記時,默認初始化為0值;

  3. 非靜態全局變數沒有默認初始值,C語言規定初始化值為隨機值,但具體的實現由編譯器決定。