c語言中定義變數不賦初值預設是多少

時間 2021-10-17 04:39:55

1樓:enjoy蘰踄繧鍴

沒有加static,預設為auto 型,此時,不給初值,變數的初值是隨機的。

如果加了static不給初值,變數的初值是預設的 0。

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

【c語言】

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。

2樓:聶友鐸暖暖

由編譯器決定的!!很不安全這種!!有的編譯器預設值為0

或者null,有的是一個非常大的負值,或者是最小的一個數!一般都會定義的時候初始化下!!

3樓:匿名使用者

這個得看是什麼變數,還要看在**定義。

在全域性範圍定義的變數會有預設初值,int 為 0,浮點為 0.0,字串為空串。

在區域性範圍(函式中)定義的變數,如果沒有賦初值,那麼變數的值是不確定的。

4樓:雨林

如果是整形值的化是0,如果是指標的化它的內容則是隨機的,指標定義是最好初始化為null

5樓:匿名使用者

看你定義的變數的作用域,若為全域性變數一般系統初始化為0;

若為區域性變數,系統會給一個隨機值,建議初始化

6樓:

不一定啊,還要看不同的編譯器,很多時候是0,所以你最好給需要初值的變數賦好你想要的初值了。

7樓:鍋勁

一般情況 沒有加static 預設為auto 型此時 不給初值,變數的 初值是隨機的

但是 如果加了 static 不給初值 變數的初值是預設的 0

指標也是一樣,其實 null 的值 就是 0只是它不代表任何地址謝謝

8樓:匿名使用者

c語言中,如果變數未定義,那麼它的值是不確定的。

所以習慣上變數在定義的時候就賦值了,如int a=0;

9樓:匿名使用者

不一定,要看你定義的變數是什麼型別的……隨便舉個例子吧,指標變數,怎麼可能是0……

10樓:匿名使用者

靜態區域性變數和全域性變數預設值為0

c語言中定義變數不賦初值是多少?

11樓:enjoy蘰踄繧鍴

沒有加static,預設為auto 型,此時,不給初值,變數的初值是隨機的。

如果加專了static不給初值,變數的屬初值是預設的 0。

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

【c語言】

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。

c語言中,若在函式內部定義變數時沒有給變數賦予初值,如int a;,則a的初始值為

12樓:匿名使用者

區域性變數未初始化就是一個隨機值,如果宣告的int為全域性變數會預設初始化為0

13樓:匿名使用者

變數的定義實際是指定了一個記憶體的單元而已,如果剛開機也許是0大多不確定,是個隨機數

而其他的語言大多是0,

這就是c 的特別之處,一般都要預先賦初值,語言省事了,程式設計的人麻煩一點點

14樓:**

不可預知的數, 即隨機數。

15樓:言不由衷

0xcccccccc

c語言中變數初始化與賦初值有什麼不同

語法上的初始化是指物件定義時,對應的分配空間之後對於值的操作。c語言中,靜態和全域性變數預設置0,有初始化列表的複製初始化列表的值到空間 如有不足,剩餘部分置0 區域性自動變數可以不初始化 偵錯程式參與時可能被隱式地初始化為其它的值 debug magic number 例如預設情況下microso...

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

普通陣列沒有賦初值,預設的陣列元素值是隨機數,不是0。如果在定義陣列時,資料型別前面加上關鍵字static,陣列變成了靜態陣列 或者把陣列定義在函式的外面,成為全域性變數陣列,這時陣列元素的值自動賦值為0。例子 includeint main void int m 0 static int n in...

c語言中巨集跟常變數的定義有什麼區別

c當中是沒有常變數的,也就是定義的變數賦值了常數但是仍然可以改變值 c 裡邊才有常變數,定義同時初始化,以後就不能改變值了。c中的巨集定義就是一種替換,上的複製替換,可以這樣理解,define a 12345就是凡是a出現的地方都用12345替換,當然巨集替換就不止數值,還可以到字串 函式表示式上去...